日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

灵活运用 SQL SERVER FOR XML PATH

發布時間:2025/3/8 asp.net 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 灵活运用 SQL SERVER FOR XML PATH 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??????? FOR XML PATH 有的人可能知道有的人可能不知道,其實它就是將查詢結果集以XML形式展現,有了它我們可以簡化我們的查詢語句實現一些以前可能需要借助函數活存儲過程來完成的工作。那么以一個實例為主.

??????? 一.FOR XML PATH 簡單介紹

???????????? 那么還是首先來介紹一下FOR XML PATH ,假設現在有一張興趣愛好表(hobby)用來存放興趣愛好,表結構如下:

???????接下來我們來看應用FOR XML PATH的查詢結果語句如下:

SELECT?*?FROM?@hobby?FOR?XML?PATH

?????? 結果:

<row>
??
<hobbyID>1</hobbyID>
??
<hName>爬山</hName>
</row>
<row>
??
<hobbyID>2</hobbyID>
??
<hName>游泳</hName>
</row>
<row>
??
<hobbyID>3</hobbyID>
??
<hName>美食</hName>
</row>

????? 由此可見FOR XML PATH 可以將查詢結果根據行輸出成XML各式!

????? 那么,如何改變XML行節點的名稱呢?代碼如下:?????

SELECT?*?FROM?@hobby?FOR?XML?PATH('MyHobby')

?

????? 結果一定也可想而知了吧?沒錯原來的行節點<row> 變成了我們在PATH后面括號()中,自定義的名稱<MyHobby>,結果如下:

<MyHobby>
??
<hobbyID>1</hobbyID>
??
<hName>爬山</hName>
</MyHobby>
<MyHobby>
??
<hobbyID>2</hobbyID>
??
<hName>游泳</hName>
</MyHobby>
<MyHobby>
??
<hobbyID>3</hobbyID>
??
<hName>美食</hName>
</MyHobby>

????? 這個時候細心的朋友一定又會問那么列節點如何改變呢?還記的給列起別名的關鍵字AS嗎?對了就是用它!代碼如下:

SELECT?hobbyID?as?'MyCode',hName?as?'MyName'?FROM?@hobby?FOR?XML?PATH('MyHobby')

?

????? 那么這個時候我們列的節點名稱也會編程我們自定義的名稱 <MyCode>與<MyName>結果如下: <MyHobby>
??
<MyCode>1</MyCode>
??
<MyName>爬山</MyName>
</MyHobby>
<MyHobby>
??
<MyCode>2</MyCode>
??
<MyName>游泳</MyName>
</MyHobby>
<MyHobby>
??
<MyCode>3</MyCode>
??
<MyName>美食</MyName>
</MyHobby>??? 噢! 既然行的節點與列的節點我們都可以自定義,我們是否可以構建我們喜歡的輸出方式呢?還是看代碼:? SELECT?'[?'+hName+'?]'?FROM?@hobby?FOR?XML?PATH('')

??? 沒錯我們還可以通過符號+號,來對字符串類型字段的輸出格式進行定義。結果如下:

[?爬山?][?游泳?][?美食?]

??? 那么其他類型的列怎么自定義? 沒關系,我們將它們轉換成字符串類型就行啦!例如:

SELECT?'{'+STR(hobbyID)+'}','[?'+hName+'?]'?FROM?@hobby?FOR?XML?PATH('')

??? 好的 FOR XML PATH就基本介紹到這里吧,更多關于FOR XML的知識請查閱幫助文檔!

??? 接下來我們來看一個FOR XML PATH的應用場景吧!那么開始吧。。。。。。

??????? 二.一個應用場景與FOR XML PATH應用

????????首先呢!我們在增加一張學生表,列分別為(stuID,sName,hobby),stuID代表學生編號,sName代表學生姓名,hobby列存學生的愛好!那么現在表結構如下:

??????????

??????? 這時,我們的要求是查詢學生表,顯示所有學生的愛好的結果集,代碼如下:

SELECT?B.sName,LEFT(StuList,LEN(StuList)-1)?as?hobby?FROM?(
SELECT?sName,
(
SELECT?hobby+','?FROM?student?
??
WHERE?sName=A.sName?
??
FOR?XML?PATH(''))?AS?StuList
FROM?student?A?
GROUP?BY?sName
)?B?

???????? 結果如下:

?分析: 好的,那么我們來分析一下,首先看這句:

SELECT?hobby+','?FROM?student?
??
WHERE?sName=A.sName?
??
FOR?XML?PATH('')

這句是通過FOR XML PATH 將某一姓名如張三的愛好,顯示成格式為:“ 愛好1,愛好2,愛好3,”的格式!

那么接著看:

SELECT?B.sName,LEFT(StuList,LEN(StuList)-1)?as?hobby?FROM?(
SELECT?sName,
(
SELECT?hobby+','?FROM?student?
??
WHERE?sName=A.sName?
??
FOR?XML?PATH(''))?AS?StuList
FROM?student?A?
GROUP?BY?sName
)?B??

剩下的代碼首先是將表分組,在執行FOR XML PATH 格式化,這時當還沒有執行最外層的SELECT時查詢出的結構為:

可以看到StuList列里面的數據都會多出一個逗號,這時隨外層的語句:SELECT?B.sName,LEFT(StuList,LEN(StuList)-1)?as?hobby? 就是來去掉逗號,并賦予有意義的列明!

好啦,太晚啦就說到這里吧!

轉載于:https://www.cnblogs.com/doubleliang/archive/2011/07/06/2098775.html

總結

以上是生活随笔為你收集整理的灵活运用 SQL SERVER FOR XML PATH的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 最好看的日本字幕mv视频大全 | 关之琳三级全黄做爰在线观看 | 久久婷婷国产 | 奇米狠狠| 久久婷婷色综合 | 亚洲一区二区免费在线观看 | 欧美福利社 | 亚洲精品中文字幕在线播放 | 欧美成人三级伦在线观看 | 91精品国产闺蜜国产在线闺蜜 | 亚洲天堂第一 | 麻豆区1免费 | 免费无码一区二区三区 | 娇妻被老王脔到高潮失禁视频 | 强行侵犯视频在线观看 | 99日精品 | 亚洲精品国产精品乱码在线观看 | 亚洲图片小说区 | 一级a毛片免费观看久久精品 | 成人在线免费播放视频 | 国产精品av在线免费观看 | 国产又粗又猛又爽又黄av | 色97色| 欧美第一精品 | 色欧美日韩 | 一个人看的毛片 | 国产夜夜夜 | 波多野结衣一区二区三区高清av | 日本一区二区三区在线观看视频 | 国产精品久久久久一区二区三区 | 人成亚洲| а√天堂www在线天堂小说 | 国产精品video | 日本一区二区三区免费观看 | 日本黄色美女 | 香蕉亚洲 | 天天噜夜夜噜 | 亚洲视频在线免费播放 | 国产美女一区二区 | 高清av网| 亚洲精久| 动漫美女露胸网站 | 奇米97| 熟妇熟女乱妇乱女网站 | 亚洲欧洲中文 | 亚洲精选在线 | 久久国内精品视频 | 可以看av的网站 | 亚洲欧洲天堂 | 婷婷综合五月天 | 一本免费视频 | 国内一区二区 | 亚洲熟妇无码另类久久久 | 日韩黄大片| 人妻久久一区二区三区 | 亚洲色图丝袜美腿 | 久伊人网| 播放男人添女人下边视频 | 日韩欧美一区二区三区四区 | 91成人看片 | 亚洲午夜激情视频 | 天堂少妇| 亚洲欧美日本在线观看 | 国产精品久久久久久免费免熟 | 在线免费观看a级片 | 99激情视频| 国产97色 | 久久精品国产99久久不卡 | 国产黄色片免费在线观看 | 天堂av资源在线观看 | 在线观看黄色国产 | 久久精品一二区 | 肉嫁高柳家在线看 | 日本色妞| 草草久久久 | 黄色污污网站在线观看 | 男人和女人做爽爽视频 | 久色精品视频 | 天天躁日日躁狠狠躁免费麻豆 | a∨视频 | 欧美色综合天天久久综合精品 | 成年人网站在线免费观看 | 国产成人精品123区免费视频 | 免费成人深夜夜行网站视频 | 日本三级韩国三级美三级91 | 久久久久成人片免费观看蜜芽 | 中文字幕乱码一区二区 | 日韩成人av网站 | 男女午夜免费视频 | 丁香激情综合 | 国产精品入口麻豆 | 米奇7777狠狠狠狠视频 | 久久男人av | 射久久久 | 欧美极品jizzhd欧美爆 | 在线播放国产精品 | av网站亚洲| 熟妇人妻中文字幕无码老熟妇 | 一本在线 |