將查詢結果拼接成字串

2022-02-26 06:02:08 字數 1482 閱讀 2008

#for xml path(param)--將查詢結果以xml格式輸出

1 select id,name from table1 for xml path

2 --id和name為table1的真實字段

- path後面沒有引數時,每行資料被預設標籤包裹,每行列資料被被其列名標籤包裹。

上面sql的結果可如下:

1 2     1

3 holab

4 5 6 2

7 name1

8 9 ....

- 每行資料最外面包裹的標籤由path的引數控制(沒有引數時,預設為row),所以要去掉則可以直接給乙個空字串作為path的引數。

- 每行列資料所被直接包裹的標籤由查詢結果的列名控制,要去掉只需要保證查詢出來的列沒有列名就可以了(保證沒有列名最簡單的方法是給每個欄位加乙個空字串)。

1 select (select id+'',name+'' from table1 for xml path(''))
結果:

1 1holab2name1....
#stuff函式

stuff(character_expression,start,length,replacewith_expression)

刪除指起始位置(start)指定長度(length)的字元,並在該位置插入代替的字元(replacewith_expression)

#row_number() over(order by column)--為查詢結果新增序號列 

1 select id,name,row_number over(order by id) as num from table1
結果:

1 id    name     num

2 1 holab 1

3 2 name1 2

4 4 name 3

5 ....

#將查詢結果拼接成以逗號分隔的字串--每條資料以逗號分隔

1 select stuff((select ','+id+':',name+'' from table1 for xml path('')),1,1,'')
結果:

1 1:holab,2:name1....
#將查詢結果的每條資料換行顯示(每行開頭新增序號)

1 select (select row_number() over(order by id)+'、',id+':',name+char(10) from table1 for xml path(''))
結果:

1 1、1:holab

2 2、2:name2

3 ....

4 5 --char(10)為sql server中的換行符

6 --因為最後一行也有換行符,所以最後會多一行空白行

MSSQL如何將查詢結果拼接成字串

在博問上看到乙個提問 mssql如何將查詢結果拼接成字串 想了一下應該怎麼實現呢,在c 等語言下好實現,但在sql裡實現 還真沒做過。目標 想要在sql中將查詢的結果拼接為 1 2 3 4 5 分析 要進行拼接就要取得每行的值,想到了游標可以做到。於是有了下面的方法 select name from...

sqlserver中將查詢結果拼接成字串

for xml path param 將查詢結果以xml格式輸出 select id,name from table1 for xml path path後面沒有引數時,每行資料被預設標籤包裹,每行列資料被被其列名標籤包裹。結果如下 1 holab 2name1 每行資料最外面包裹的標籤由path的...

Sql Server將一列字段拼接成字串方法

最近在專案中遇到個問題,需要將表中某列字段合併成字串輸出,如果直接通過 全部讀取出來,再遍歷進行拼接顯然不是最好的方法,所以想著能否在資料讀取的時候直接拼接好返回,網上搜了可通過for xml來實現。首先,準備好需要的資料,指令碼如下 if exists select from sysobjects...