2016-04-04 23 views
0

Tek bir satırda tüm kimlikleri ve değerleri nasıl seçebilirim?Tsql tüm satırlar ve değerler bir satırda

| id | value | condition | 
-------------------------- 
| 1 | value1 |  0  | 
| 2 | value2 |  0  | 
| 3 | value3 |  1  | 
| 4 | value4 |  1  | 

Sonuç:

| ids |  values  | condition | 
------------------------- 
| 1, 2 | value1, value2 |  0  | 
| 3, 4 | value3, value4 |  1  | 
+1

Örneğin

Google: "SQL Server toplama dizisi birleştirmesi" veya "SQL Server group_concat". –

+0

Diğer 50 mesajın olası kopyası ... –

+0

Gordon Linoff, teşekkürler. Senin cevabın bana çok yardımcı oluyor. – Mqat

cevap

0

böyle Deneyin:

CREATE TABLE #test(id INT,value VARCHAR(100),condition INT); 
INSERT INTO #test VALUES 
(1,'value1',0) 
,(2,'value2',0) 
,(3,'value3',1) 
,(4,'value4',1); 

WITH MyDistinctConditions AS 
(
    SELECT DISTINCT condition 
    FROM #test 
) 
SELECT c.condition 
     ,(SELECT STUFF(
         (
         SELECT ', ' + CAST(t.id AS VARCHAR(10)) 
         FROM #test AS t 
         WHERE t.condition=c.condition 
         FOR XML PATH('')),1,2,'')) AS ids 
     ,(SELECT STUFF(
         (
         SELECT ', ' + t.value 
         FROM #test AS t 
         WHERE t.condition=c.condition 
         FOR XML PATH('')),1,2,'')) AS [values] 
FROM MyDistinctConditions AS c; 

DROP TABLE #test; 

sonucu

condition ids  values 
0   1, 2 value1, value2 
1   3, 4 value3, value4 
İlgili konular