請教sql 語法,合併多重值到一列? |
尚未結案
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
|
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
您好,
1. 本站好像有多編討論過 2. 請 google 一下 group_concat 3. 或參考一下 http://blog.xuite.net/st33chen/oracle/21918157 或 http://blog.xuite.net/st33chen/oracle/22137153 sorry.... sorry..... sorry 寫了才發覺您是在 ms sql 區 不過, 找一下 group_concat mssql 應該有人討論過 找到一編了 http://anthony-yio.blogspot.com/2007/12/mssql-groupconcat.html http://sodeve.net/ms-sql-version-of-mysqls-group_concat/ http://stackoverflow.com/questions/451415/simulating-groupconcat-mysql-function-in-ms-sql-server-2005
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
謝謝 GrandRURU及st33chen的回應
參考兩位提供的資料 因為我的後端是sql 2000,無法用先進的with及CROSS APPLY這些字 整理好後,用cursor達到,不過感覺上應該還可以用遞迴的方式,只是我這方面功力不夠,先暫且用這樣的方式 不知道有沒有更輕便的辦法? [code sql] declare @table1 table(names varchar (50),groupname varchar (50)) insert into @table1(names, groupname) select 'name1', 'group1' union select 'name2', 'group2' union select 'name3', 'group1' declare @result table(groupname varchar(50),names varchar(50)) declare @string varchar(250),@groupname char(50) declare list cursor for select groupname from @table1 group by groupname open list fetch next from list into @groupname while @@fetch_status = 0 begin select @string=coalesce(@string,'') names ',' from @table1 where groupname = @groupname insert @result select @groupname,@string fetch next from list into @groupname end close list deallocate list select * from @result [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |