2015-11-10 28 views
0

選擇多行和列的獨特價值我有一個像下面在表中的值:在單一列表值

Column1 | Column2 | Column3 | Column4 
===================================== 
1  | 3  | 5  | NULL 
1  | 3  | NULL | NULL 
1  | 4  | NULL | NULL 
2  | NULL | NULL | NULL 

是怎樣的查詢,如果我想要的結果只有獨特的價值,而不是空象下面這樣:

1,2,3,4,5 

回答

1

只要有4個查詢,一個是在每一列和UNION結果選擇在一起: -

SELECT Column1 AS aCol FROM SomeTable WHERE Column1 IS NOT NULL 
UNION 
SELECT Column2 AS aCol FROM SomeTable WHERE Column2 IS NOT NULL 
UNION 
SELECT Column3 AS aCol FROM SomeTable WHERE Column3 IS NOT NULL 
UNION 
SELECT Column4 AS aCol FROM SomeTable WHERE Column4 IS NOT NULL 

或者,如果您只是希望與他們一起返回的單個字段全部concantentated: -

SELECT GROUP_CONCAT(aCol) 
FROM 
(
    SELECT Column1 AS aCol FROM SomeTable 
    UNION 
    SELECT Column2 AS aCol FROM SomeTable 
    UNION 
    SELECT Column3 AS aCol FROM SomeTable 
    UNION 
    SELECT Column4 AS aCol FROM SomeTable 
) Sub0