如何使用SQL將多行連接成單行?我的數據庫是DB2如何連接SQL中單個行內的多行?
TableFoo
-------
Id Name
1 Apples
1 Tomatoes
1 Potatoes
2 Banana
2 Peach
我想是這樣
ID FruitsAvailable
-------------------------
1 Apples, Tomatoes, Potatoes
如何使用SQL將多行連接成單行?我的數據庫是DB2如何連接SQL中單個行內的多行?
TableFoo
-------
Id Name
1 Apples
1 Tomatoes
1 Potatoes
2 Banana
2 Peach
我想是這樣
ID FruitsAvailable
-------------------------
1 Apples, Tomatoes, Potatoes
試試這個
SELECT id ,FruitsAvailable
FROM
(SELECT id , group_concat(Name) as FruitsAvailable
FROM TableFoo
WHERE id = 1) t
編輯: 在DB2中,你需要創建函數,然後調用它
CREATE FUNCTION MySchema/MyUDF (
PARCol2 CHAR(5))
RETURNS VARCHAR(1024)
LANGUAGE SQL
NOT DETERMINISTIC
READS SQL DATA
CALLED ON NULL INPUT
DISALLOW PARALLEL
BEGIN
DECLARE ReturnVal VARCHAR(1024) NOT NULL DEFAULT '';
FOR CsrC1 AS C1 CURSOR
FOR SELECT MyCol1
FROM MyTable
WHERE MyCol2 = ParCol2
DO SET ReturnVal = ReturnVal Concat CsrC1.MyCol1;
END FOR;
RETURN LTRIM(ReturnVal);
END ;
,然後在這裏稱之爲
Select id, MyUDF(Name) as FruitsAvailable
From TableFoo
where id = 1
-1:GROUP_CONCAT是MySql,DB2中不存在 – 2013-02-13 10:21:00
無法使其運行。我認爲DB2_ – 2013-02-13 10:21:51
不支持group_concat嘗試編輯答案 – 2013-02-13 10:33:13
使用此查詢:
SELECT Id, GROUP_CONCAT(Name SEPARATOR ', ') FROM TableFoo GROUP BY Id;
-1:GROUP_CONCAT是MySql,它不存在於DB2中 – 2013-02-13 10:20:08
這取決於你正在使用的DBMS。 – 2013-02-13 10:10:12
@MahmoudGamal我正在使用DB2傢伙 – 2013-02-13 10:12:00
對這篇文章的回答並不是我期待的......我想還有很多其他的方法 – 2013-02-13 10:17:12