2016-07-22 5 views
1

У меня есть таблица:SQL Server присоединяющиеся результаты состояние

NAME FACTOR 
say_type1 A 
(...) 
say_type2 B 
(...) 
say_type3 A 
(...) 
say_type3 B 

Я хотел бы получить в результате ответа (SELECT имя, коэффициент FROM ... WHERE some_condition):

say_type1 A 
say_type2 B 
say_type3 A,B 

Im используя CASE, но он действует только для одной записи.

+1

Google: "SQL Server агрегатный строка CONCAT" –

+1

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

ответ

0

Я думаю, вы хотите преобразовать столбец FACTOR в строку. Вы можете сделать это с XML PATH:

--F.e. we have this in YourTable 
--('say_type1', 'A'), 
--('say_type2', 'B'), 
--('say_type3', 'A'), 
--('say_type3', 'B') 

SELECT DISTINCT t1.NAME, 
     STUFF((SELECT ',' + FACTOR 
     FROM YourTable 
     WHERE NAME = t1.NAME 
     FOR XML PATH('')),1,1,'') as FACTOR 
FROM YourTable t1 

Выход:

NAME  FACTOR 
say_type1 A 
say_type2 B 
say_type3 A,B 
Смежные вопросы