2015-10-19 4 views
0

Я выполняю запрос, который дает мне более 8 миллионов записей. Я экспортировал результат в CSV-файл, но файл слишком большой для обработки (8 ГБ ...).SQL Server - экспорт огромного количества записей в несколько файлов csv

То, что я пытаюсь сделать, это разделить результат CSV на несколько файлов, но с одним условием:

Существует имя столбца «Локатор», который представляет собой идентификатор. Я сумел сгруппировать мои записи для того, чтобы иметь такой результат:

Locator | Name | LastName 
___________________________ 
ABCDEFH | Foo | Oof 
ABCDEFH | Foo2 | Oof2 
ABCDEFH | Foo3 | Oof3 
TUVWXYZ | Mark | Mark 
TUVWXYZ | Mark2| Mark2 
...  | ... | ... 

Так что я хочу сделать, это в основном для разделения записей без расщепления группировок ... Это можно сделать что?

EDIT: Вот запрос с NTILE:

with locator as 
(
    select distinct 
    pnrlctrnum, 
    NTILE(8) OVER(ORDER BY pnrlctrnum) as Tile_Num 

from ttddocseg, ttddoc, ttdhdr 
where ttddocseg.tdtrxnum = ttddoc.tdtrxnum and ttdhdr.tdtrxnum = ttddoc.tdtrxnum 
) 
select ttdhdr.pnrlctrnum, ttddoc.*, ttddocseg.* 
from ttddocseg, ttddoc, ttdhdr 
inner join locator on locator.pnrlctrnum = ttdhdr.pnrlctrnum 
where Tile_num = 7 and ttddocseg.tdtrxnum = ttddoc.tdtrxnum and ttdhdr.tdtrxnum = ttddoc.tdtrxnum 

ответ

0

Вы можете использовать функцию NTILE для создания групп групп. Это обеспечит объединение групп, и вы сможете разделить свой экспорт на любое количество разделов, которые вам нравятся.

Измените номер телефона, чтобы изменить количество желаемых группировок, затем вы можете интегрировать его в свой экспортный процесс, как вам нравится.

with locator as 
(
    select ditinct 
    Locator, 
    NTILE(4) OVER(ORDER BY Locator) as Tile_Num 
    from tbl 
) 
select * 
from tbl 
inner join locator on locator.Locator = tbl.Locator 
where Tile_num = 3 
+0

Благодарим вас за ответ! Когда я запрашиваю 3 таблицы, вы можете посмотреть мой обновленный вопрос? Было бы очень мило с вашей стороны! – Traffy

+0

Можете ли вы объяснить, в чем проблема? ваш запрос выглядит правильно для меня, так как он должен присоединиться к вашим другим таблицам и по-прежнему давать вам номер плитки, который вы можете использовать для экспорта –

Смежные вопросы