Как преобразовать строки в столбцы с помощью commasepart, используя огромные данные на SQL сервере - PullRequest
0 голосов
/ 28 мая 2020

У меня есть вопрос о SQL сервере: как преобразовать строки в столбцы с данными, разделенными запятыми, с использованием массовых данных?

CREATE TABLE [dbo].[Emp]
(
    [eid] [int] NULL,
    [name] [varchar](50) NULL,
    [sal] [money] NULL,
    [doj] [date] NULL,
    [deptno] [int] NULL
) 

INSERT [dbo].[Emp] ([eid], [name], [sal], [doj], [deptno]) 
VALUES (1, N'a', 100.0000, CAST(N'2010-10-01' AS Date), 10)

INSERT [dbo].[Emp] ([eid], [name], [sal], [doj], [deptno]) 
VALUES (2, N'bb', 200.0000, CAST(N'2010-02-03' AS Date), 20)

INSERT [dbo].[Emp] ([eid], [name], [sal], [doj], [deptno]) 
VALUES (3, N'c', 300.0000, CAST(N'2017-02-03' AS Date), 30)

INSERT [dbo].[Emp] ([eid], [name], [sal], [doj], [deptno]) 
VALUES (4, N'd', 301.0000, CAST(N'2010-03-04' AS Date), 10)

INSERT [dbo].[Emp] ([eid], [name], [sal], [doj], [deptno]) 
VALUES (5, N'teee', 250.0000, CAST(N'2010-06-04' AS Date), 20)

INSERT [dbo].[Emp] ([eid], [name], [sal], [doj], [deptno]) 
VALUES (7, N'tte', 800.0000, CAST(N'2010-08-09' AS Date), 70)

Я хочу вывод, как показано ниже:

userlist
1,2,3,4,5,7

Я пробовал этот код:

select distinct  
    stuff((select ',' + cast(u.eid as varchar)
           from emp u
           where 1 = 1
           for xml path('')), 1, 1, '') as userlist
from emp

Предположим, что если данные содержат 100 тысяч записей, тогда этот запрос не возвращает 100 тысяч, разделенных запятыми

Не могли бы вы рассказать мне, как написать запрос для достижения этой задачи на SQL сервере?

1 Ответ

0 голосов
/ 28 мая 2020

Думаю, запрос работает должным образом. Но результат слишком велик для отображения в студии управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...