FOR XML PATH的使用方法

2021-07-25 19:26:50 字數 1989 閱讀 7746



for xml path它就是將查詢結果集以xml形式展現,有了它我們可以簡化我們的查詢語句實現一些以前可能需要借助函式活儲存過程來完成的工作

例如:select stuff((select ','+tc0067 from wfpuser_t0402 for xml path('')),1,1,'')

示例:declare @temptable table(userid int , username nvarchar(50));

insert into @temptable (userid,username) values (1,'a')

insert into @temptable (userid,username) values (2,'b')

select userid,username from @temptable for xml path執行這段指令碼,將生成如下結果: 1

a 2 b

大家可以看到兩行資料生成了兩個節點,修改一下path的引數:

select userid,username from @temptable for xml path('lzy')

再次執行上述指令碼,將生成如下的結果:1

a 2

b 可以看到節點變成,其實path() 括號內的引數是控制節點名稱的,這樣的話大家可以看一下如果是空字串(不是沒有引數)會是什麼結果?

select userid,username from @temptable for xml path('')

執行上面這段指令碼將生成結果:1

a 2

b 這樣就不顯示上級節點了,大家知道在 path 模式中,列名或列別名被作為 xpath 表示式來處理,也就是說,是列的名字,這樣大膽試驗一下不給指定列名和別名會是怎麼樣?

select cast(userid as varchar) + '',username + '' from @temptable for xml path('')

執行上面這句將生成結果

1a2b

所有資料都生成一行,而且還沒有連線字元,這樣的資料可能對大家沒有用處,還可以再變化一下:

select cast(userid as varchar) + ',',username + '',';' from @temptable for xml path('')

生成結果

1,a;2,b;

select '' from @temptable for xml path('')

生成結果

還可以生成其他格式,大家可以根據自己需要的格式進行組合。

下面是乙個資料統計的應用,希望大家可以通過下面的例項想到更多的應用

declare @t1 table(userid int , username nvarchar(50),cityname nvarchar(50));

insert into @t1 (userid,username,cityname) values (1,'a','上海')

insert into @t1 (userid,username,cityname) values (2,'b','北京')

insert into @t1 (userid,username,cityname) values (3,'c','上海')

insert into @t1 (userid,username,cityname) values (4,'d','北京')

insert into @t1 (userid,username,cityname) values (5,'e','上海')

select b.cityname,left(userlist,len(userlist)-1) as 使用者名稱  from (

select cityname,

(select username+',' from @t1 where cityname=a.cityname for xml path('')) as userlist

from @t1 a

group by cityname

) b

pythonpip使用方法 pip使用方法整理

匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...

機械秒錶的使用方法 秒錶的使用方法!

秒錶是一種常用的測時儀器。又可稱 機械停表 由暫停按鈕 發條柄頭 分針等組成。它是利用擺的等時性控制指標轉動而計時的。它是利用擺的等時性控制指標轉動而計時的。在它的正面是乙個大表盤,上方有乙個小表盤 圖1.4 2 秒針沿大表盤轉動,分針沿小表盤轉動。分針和秒針所指的時間和就是所測的時間間隔。在表正上...

使用方法 離型劑使用方法

1 使用離型劑前必須確保模具乾淨,無粉塵 蠟垢 樹脂垢 油汙等殘留物質。可以使用專用的模具潔模劑進行清洗,不可用其他液體清洗,以免清洗不乾淨或損壞模具。另外,如果您的模具是新的,在清洗乾淨後,務必要對模具進行初步處理,用離型劑在模具表面噴 刷塗5 6次,之後方可正常投入生產。2 使用離型劑時,首先要...