2015-09-02 2 views
2

У меня есть таблица, как это:SQL- значение строки для же идентификатора списка (,)

id | code 
111 | IL 
111 | IN 
222 | UK 
222 | IN 

Я хочу это:

id | path 
111 | IL,IN 
222 | UK,IN 

и furher, что для подсчета различных идентификаторов в различных путях благодаря

+2

Предоставьте свою СУБД (MySQL, SQL-Server, Oracle ...) –

+0

SQL-сервер, который будет – eriksson20

+2

Возможный дубликат [Имитация группы \ _concat MySQL в SQL Server?] (Http://stackoverflow.com/questions/451415/simulating-group-concat-mysql-function-in-sql-server) –

ответ

1

в SQL-сервер вы можете сделать в следующем:

ОБРАЗЦА ДАТА

DECLARE @Tbl TABLE(id INT, code VARCHAR(40)) 
INSERT INTO @Tbl VALUES (111,'IL'),(111,'IN'),(222,'UK'),(222,'IN') 

QUERY

SELECT id 
     ,STUFF((SELECT ',' + CAST(code AS VARCHAR(10)) [text()] 
       FROM @Tbl 
       WHERE id = t.id 
       FOR XML PATH(''), TYPE) 
     .value('.','NVARCHAR(MAX)'),1,1,' ') path 
FROM @Tbl t 
GROUP BY id 

ВЫВОД

id path 
111 IL,IN 
222 UK,IN 
+0

спасибо! что помогло – eriksson20

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