參考引用
--
***這個方法是採用迴圈方式去處理
假設TableA為 tableA(food,price),裡面有資料如下:
food | price
西瓜 20
蘋果 50
香蕉 20
鳳梨 30
接下來想把相同金額的水果進行分類,想要的格式如下:
(用逗號分隔水果的話,輸出成csv格式就會自動再分格成不同欄位唷!)
#tempA
price | food
20 西瓜,香蕉
30 鳳梨
50 蘋果
指令:
--先將
select distinct price , cast(' ' as varchar(max)) into #tempA from tableA
--宣告游標
DECLARE food_cursor CURSOR for select * from #tempA
OPEN food_cursor
--宣告變數
DECLARE @result varchar(200) --進行字串串接使用
DECLARE @food varchar(50)
DECLARE @price varchar(50)
DECLARE @cmd varchar(200) --debug時,輸出select指令
--將游標指向下一筆紀錄,擷取值設進@food以及@price
FETCH NEXT FROM tables_cursor INTO @food,@price
--開始跑迴圈
WHILE (@@FETCH_STATUS <> -1)
BEGIN
--set @cmd = 'select food,@result='+@result+ ',price from (select food from #tempA where price=' + @price+')Duration'
set @result=''
select @result=@result+','+food from (select food from #tempA where price=@price)Duration
--PRINT 'Contact Name after: ' + @food + '_' + @price + '_' + @result+'---'+@cmd
update #tempA set result=rtrim(@result) where price=@price
FETCH NEXT FROM food_cursor INTO @food,@price
end
CLOSE food_cursor
DEALLOCATE food_cursor
沒有留言:
張貼留言