Maciej Los
Проверить это:
sql-объединить много строк в одну текстовую строку? - переполнение стека[^]
sql-несколько строк в одно значение, разделенное запятыми-переполнение стека[^]
[РЕДАКТИРОВАТЬ]
Я забыл упомянуть, что вам нужно использовать NTILE(2)[^] функция, чтобы иметь возможность разделить Column1
разделите их на 2 группы, прежде чем начать конкатенацию Column2
:
SELECT *, NTILE(2) OVER( ORDER BY Column1) AS GrpNo
FROM YourTableName
Полный пример:
DECLARE @tmp TABLE (Column1 VARCHAR(5), Column2 INT)
INSERT INTO @tmp (Column1, Column2)
VALUES('a', 1),
('a', 2),
('a', 3),
('a', 4),
('a', 5),
('a', 6),
('a', 7),
('a', 8),
('a', 9),
('a', 10)
SELECT DISTINCT t2.Column1,
(
SELECT CONVERT(VARCHAR(100), t1.Column2) + ',' AS [text()]
From (
SELECT *, NTILE(2) OVER( ORDER BY Column1) AS GrpNo
FROM @tmp
) t1
WHERE t1.Column1 = t2.Column1 AND t1.GrpNo = t2.GrpNo
FOR XML PATH ('')
) AS Col2
FROM (
SELECT *, NTILE(2) OVER( ORDER BY Column1) AS GrpNo
FROM @tmp
) AS t2
suneel kumar gupta
Я должен определить максимальное количество элементов в каждой группе.
Например: если нет от 1 до 25 и если максимальный элемент в каждой группе равен 10,
тогда o/p s будет
а 1,2,3..10
б 11,12, ... 20
с 21,22...25