Я уже некоторое время готовлю списки с разделителями-запятыми, используя STUFF
и FOR XML PATH('')
в Microsoft SQL Server.
Если этот точный синтаксис у вас не работает, вы все равно можете найти некоторыеполезная информация о том, как это работает здесь .
DECLARE @LetterTypes TABLE (Type CHAR(10))
INSERT @LetterTypes
VALUES
('Consonant'),
('Vowell')
DECLARE @Letters TABLE (Letter CHAR(1) NOT NULL, Type VARCHAR(10) NOT NULL)
INSERT @Letters
VALUES
('A','Vowell'),
('B','Consonant'),
('C','Consonant'),
('D','Consonant'),
('E','Vowell'),
('F','Consonant'),
('G','Consonant'),
('H','Consonant'),
('I','Vowell'),
('J','Consonant'),
('K','Consonant'),
('L','Consonant'),
('M','Consonant'),
('N','Consonant'),
('O','Vowell'),
('P','Consonant'),
('Q','Consonant'),
('R','Consonant'),
('S','Consonant'),
('T','Consonant'),
('U','Vowell'),
('V','Consonant'),
('W','Consonant'),
('X','Consonant'),
('Y','Consonant'),
('Z','Consonant')
SELECT
Type,
STUFF
(
(
SELECT ', ' + Letter
FROM @Letters L
WHERE LT.Type = L.Type
ORDER BY L.Letter
FOR XML PATH('')
), 1, 2, ''
) AS Letters
FROM @LetterTypes LT
Выход:
![Output](https://i.stack.imgur.com/PHYxm.png)