2009-06-25 3 views
0

У меня есть запрос MS SQL, который соединяет несколько таблиц и пример результатов являются:SQL Query Distinct Колонка Concatenate Другие Колонка

EmailAddress   Column2          
--------------------- ---------------- 
[email protected]   Value1          
[email protected]   Value2 
[email protected]   Value5 


What I really want to achieve are the following results: 


EmailAddress   Column2          
--------------------- ------------------ 
[email protected]   Value1, Value2 
[email protected]   Value5 

Есть другие столбцы, которые идентичны для каждой строки с тем же адресом электронной почты , Может ли кто-нибудь помочь мне с SQL возвратить различные адреса электронной почты и объединить информацию о столбце2?

Благодарим за любую отзыв.

ответ

1

Попробуйте ответить на this question

+0

Это сделал трюк, спасибо Джереми – Sean

0

В SQL Server 2005+:

WITH q AS 
     (
     SELECT '[email protected]' AS address, 'Value1' AS value 
     UNION ALL 
     SELECT '[email protected]', 'Value2' 
     UNION ALL 
     SELECT '[email protected]', 'Value5' 
     ) 
SELECT (
     SELECT CASE WHEN ROW_NUMBER() OVER (ORDER BY value) > 1 THEN ', ' ELSE '' END + value 
     FROM q qi 
     WHERE qi.address = qo.address 
     FOR XML PATH('') 
     ) 
FROM (
     SELECT DISTINCT address 
     FROM q 
     ) qo 
0

Тот же ответ от Джереми, но я хотел бы использовать other ответ с XML PATH трюк