在博問上看到乙個提問「mssql如何將查詢結果拼接成字串」 ,想了一下應該怎麼實現呢,在c#等語言下好實現,但在sql裡實現、還真沒做過。
目標:想要在sql中將查詢的結果拼接為 '1','2','3','4','5'
分析:要進行拼接就要取得每行的值,想到了游標可以做到。於是有了下面的方法
select name from area
查詢結果如下
辦公樓車間
宿舍未知
宜家廠綜合樓
解決方法:
declare @name varchar(50)
declare @result varchar(500)
set @result=''
--定義乙個游標
declare user_cur cursor for select name from area
--開啟游標
open user_cur
while @@fetch_status=0
begin
--讀取游標
fetch next from user_cur into @name
--print @name
set @result=@result+','''+@name+''''
--print @login
endclose user_cur
--摧毀游標
deallocate user_cur
print @result
查詢結果如下:
,'宜家廠','宿舍','車間','未知','辦公樓','綜合樓','綜合樓'
將查詢結果拼接成字串
for xml path param 將查詢結果以xml格式輸出 1 select id,name from table1 for xml path 2 id和name為table1的真實字段 path後面沒有引數時,每行資料被預設標籤包裹,每行列資料被被其列名標籤包裹。上面sql的結果可如下 1 ...
如何將查詢結果進行排名
於是乎我就開始寫,嘿,奇怪,我還真沒有寫過,於是找了寫資料,借鑑了一下別人的,結果如下 create procedure csp getoperatorscorebydate begindate datetime,enddate datetime ascreate table temp 定義臨時表,...
MSSQL將查詢結果橫向顯示
表1 year month,amount 200801 5 200802 6 200803 9 200802 4 顯示結果 year 01 02 03 tot 2008 5 0 0 5 2008 0 10 0 10 2008 0 0 9 9 2008 0 0 0 24 可能多個年,多個月create...