亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > XML > 正文

SQL-學習使用FOR XML PATH

2024-07-21 02:49:21
字體:
來源:轉載
供稿:網友
SQL-學習使用FOR xml PATH

前言:本人SQL技術很爛,然后工作時間也不久,許多東西都還在學習中,說的不好的地方盡請諒解.

首先跟大家說一下我今天遇到的問題吧.

查出的數據有三列,第一列存放的是32位的GUID,Res_Name存放的是一個物資類型.Res_Data存放的是部門的GUID.我現在需要得到的數據是這樣的.

首先大家可以看到.第一張圖的Res_Data中有多個部門的GUID,中間用逗號隔開的.

我當時想到的愚蠢的辦法就是

 1 @MaterialTypeName nvarchar(200), 2 @CentralizedName nvarchar(200), 3 @start int, 4 @limit int, 5 @totalCount int output  6 AS 7 BEGIN 8     SET NOCOUNT ON; 9     select 10         ROW_NUMBER() over (order by res_id asc) as RowNumber,11         * 12     into #List 13     from 14         UBiplatform..T_RESOURCE 15     WHERE Res_Parent_Code='741cdd2bef2e479f8c5dd35cf6e8bf2a'16      17         18     declare @i int,@count int;19     declare @Centralized nvarchar(200);20     declare @List1 table(id int, ResId nvarchar(50),ResName nvarchar(50),ResData nvarchar(50));21     select @count=COUNT(*) from UBIPlatform..T_RESOURCE WHERE Res_Parent_Code='741cdd2bef2e479f8c5dd35cf6e8bf2a' 22     set @i=123     while @i<=@count24     begin25         if @i in (select RowNumber from #List)26         begin27             set @Centralized='';28             select 29                 @Centralized=@Centralized+','+LTRIM(Res_Name) 30             from UBIPlatform.dbo.FN_GETMultiValTable(31                 (select 32                     Res_Data 33                 from 34                     UBIPlatform..T_RESOURCE 35                 where 36                     Res_Id=(select Res_Id from #List where RowNumber=@i))) ge37             inner join UBIPlatform..T_RESOURCE r on r.Res_Id=ge.nvalue38             39             if @Centralized!=''40             begin41                 insert into 42                     @List1 43                 select 44                     @i,45                     Res_Id,46                     Res_Name,47                     (RIGHT(@Centralized,LEN(@Centralized)-1)) 48                 from 49                     UBIPlatform..T_RESOURCE 50                 where Res_Id=(select Res_Id from #List where RowNumber=@i)51             end52             else53             begin54                 insert into 55                     @List1 56                 select 57                     @i,58                     Res_Id,59                     Res_Name,60                     @Centralized61                 from 62                     UBIPlatform..T_RESOURCE 63                 where Res_Id=(select Res_Id from #List where RowNumber=@i)64             end    65         end66         set @i=@i+167     end68     69     select ROW_NUMBER() over (order by id asc) as RowNumber,* into #List2 from @List1 where 70     (@MaterialTypeName is null or @MaterialTypeName = '' or ResName  like '%'+@MaterialTypeName+'%')71     and (@CentralizedName is null or @CentralizedName = '' or ResData  like '%'+@CentralizedName+'%')72     73     select top(@limit) * from #List2 where RowNumber > @start order by RowNumber asc74     select @totalCount =COUNT(1) from @List175 END
View Code

這個是我開始寫出來的一個.爛到不行.雖然是解決了我的需求.但是顯而易見這種辦法是不可取的.后來請教同事,跟我介紹了FOR XML PATH,我查閱了一下就是將查詢結果集以XML形式展現.

select Res_Id,Res_Name,Res_Data from UBIPlatform..T_RESOURCE where Res_Parent_Code='741cdd2bef2e479f8c5dd35cf6e8bf2a' FOR XML PATH

結果:

 1 <row> 2   <Res_Id>239dbe35bd8446afb262f62712d8eb1b</Res_Id> 3   <Res_Name>修理費-設備備件</Res_Name> 4   <Res_Data>4BD2D7C9D91546B09BA4438EE583F682</Res_Data> 5 </row> 6 <row> 7   <Res_Id>4d35c89868854d649963410a126b4c30</Res_Id> 8   <Res_Name>低值易耗-計量器具</Res_Name> 9   <Res_Data>4ADEEC453DE04910B0136593CBB4187C</Res_Data>10 </row>11 <row>12   <Res_Id>4e74469a37894ea8a7ddd5e356433119</Res_Id>13   <Res_Name>物料消耗-計算機耗材</Res_Name>14   <Res_Data>4BD2D7C9D91546B09BA4438EE583F682,9C87FFAFD8D24B5BBEA3BF1221DD507B</Res_Data>15 </row>16 <row>17   <Res_Id>608f30860c16430aa8b13f98df0ca9f3</Res_Id>18   <Res_Name>物料消耗-水票</Res_Name>19   <Res_Data></Res_Data>20 </row>21 <row>22   <Res_Id>87a4cefa112241c1b648454e7b3682d9</Res_Id>23   <Res_Name>低值易耗-工具及其他</Res_Name>24   <Res_Data></Res_Data>25 </row>26 <row>27   <Res_Id>c2908fe510dd476aa878622dd9d07c83</Res_Id>28   <Res_Name>物料消耗-雜品</Res_Name>29   <Res_Data></Res_Data>30 </row>31 <row>32   <Res_Id>c9014727c9804c6e9df4cc1bc1487a84</Res_Id>33   <Res_Name>勞動保護費-勞保用品</Res_Name>34   <Res_Data>D5566FDCDBB448FAB4A48D20A2492626</Res_Data>35 </row>36 <row>37   <Res_Id>d3397fdcb454440f88c9c4f9432b3f40</Res_Id>38   <Res_Name>低值易耗-辦公設施</Res_Name>39   <Res_Data>9C87FFAFD8D24B5BBEA3BF1221DD507B</Res_Data>40 </row>41 <row>42   <Res_Id>d8222bcaeaba460db945324cb0a93a23</Res_Id>43   <Res_Name>修理費-計算機備件</Res_Name>44   <Res_Data>4BD2D7C9D91546B09BA4438EE583F682</Res_Data>45 </row>
View Code

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

select Res_Id,Res_Name,Res_Data from UBIPlatform..T_RESOURCE where Res_Parent_Code='741cdd2bef2e479f8c5dd35cf6e8bf2a' FOR XML PATH('RESOURCE')

原來的行節點<row> 變成了我們在PATH后面括號()中,自定義的名稱<RESOURCE>,結果如下:

<RESOURCE>  <Res_Id>239dbe35bd8446afb262f62712d8eb1b</Res_Id>  <Res_Name>修理費-設備備件</Res_Name>  <Res_Data>4BD2D7C9D91546B09BA4438EE583F682</Res_Data></RESOURCE><RESOURCE>  <Res_Id>4d35c89868854d649963410a126b4c30</Res_Id>  <Res_Name>低值易耗-計量器具</Res_Name>  <Res_Data>4ADEEC453DE04910B0136593CBB4187C</Res_Data></RESOURCE><RESOURCE>  <Res_Id>4e74469a37894ea8a7ddd5e356433119</Res_Id>  <Res_Name>物料消耗-計算機耗材</Res_Name>  <Res_Data>4BD2D7C9D91546B09BA4438EE583F682,9C87FFAFD8D24B5BBEA3BF1221DD507B</Res_Data></RESOURCE><RESOURCE>  <Res_Id>608f30860c16430aa8b13f98df0ca9f3</Res_Id>  <Res_Name>物料消耗-水票</Res_Name>  <Res_Data></Res_Data></RESOURCE><RESOURCE>  <Res_Id>87a4cefa112241c1b648454e7b3682d9</Res_Id>  <Res_Name>低值易耗-工具及其他</Res_Name>  <Res_Data></Res_Data></RESOURCE><RESOURCE>  <Res_Id>c2908fe510dd476aa878622dd9d07c83</Res_Id>  <Res_Name>物料消耗-雜品</Res_Name>  <Res_Data></Res_Data></RESOURCE><RESOURCE>  <Res_Id>c9014727c9804c6e9df4cc1bc1487a84</Res_Id>  <Res_Name>勞動保護費-勞保用品</Res_Name>  <Res_Data>D5566FDCDBB448FAB4A48D20A2492626</Res_Data></RESOURCE><RESOURCE>  <Res_Id>d3397fdcb454440f88c9c4f9432b3f40</Res_Id>  <Res_Name>低值易耗-辦公設施</Res_Name>
上一篇:第四節 使用XML

下一篇:SQL For Xml

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩精品免费在线视频| 国产日韩欧美电影在线观看| 国产精品嫩草视频| 色综合导航网站| 国产精品欧美日韩久久| 欧美亚洲一级片| 在线观看日韩视频| 456国产精品| 日韩激情av在线免费观看| 国内精品久久久久| 亚洲一级黄色av| 欧美精品国产精品日韩精品| 欧美成人免费在线视频| 国产v综合ⅴ日韩v欧美大片| 欧美理论电影在线播放| 亚洲区中文字幕| 国产日产亚洲精品| 久久99国产综合精品女同| 日韩电影第一页| 中文字幕欧美精品在线| 国产精品视频专区| 正在播放欧美一区| 欧美在线视频导航| 亚洲国产中文字幕在线观看| 亚洲美女喷白浆| 欧美精品999| 26uuu久久噜噜噜噜| 亚洲无限av看| 亚洲国产精品嫩草影院久久| 欧美日韩久久久久| 国产精品丝袜久久久久久不卡| 国产成人精品一区| 欧美国产日本在线| 久久精品视频va| 日韩欧美在线中文字幕| 亚洲一区第一页| 97精品视频在线| 国产亚洲精品一区二555| 尤物yw午夜国产精品视频明星| 久久影视电视剧凤归四时歌| 久久久国产精彩视频美女艺术照福利| 日韩在线中文字幕| 亚洲一区二区三区香蕉| 98午夜经典影视| 中文字幕日韩欧美精品在线观看| 亚洲一区二区自拍| 色午夜这里只有精品| 国产精品日日摸夜夜添夜夜av| 亚洲精品欧美一区二区三区| 91免费精品视频| 亚洲精品视频久久| 国产精品欧美一区二区三区奶水| 亚洲第一区中文99精品| 亚洲欧美国产制服动漫| 深夜福利91大全| 亚洲自拍欧美色图| 欧美成人激情图片网| 精品人伦一区二区三区蜜桃网站| 国产精品视频免费在线| 久久久这里只有精品视频| 富二代精品短视频| 国产原创欧美精品| 亚洲天堂男人天堂| 欧美黑人国产人伦爽爽爽| 中文字幕精品视频| 欧美福利在线观看| 精品中文字幕在线观看| 视频在线观看99| 久久久久久久一区二区三区| 国产亚洲综合久久| 夜夜嗨av色综合久久久综合网| 国产成人亚洲综合青青| 亚洲国产欧美在线成人app| 精品综合久久久久久97| 国产情人节一区| 91日韩在线播放| 精品视频久久久久久| 最近中文字幕2019免费| 亚洲理论在线a中文字幕| 亚洲视频在线观看免费| 一区二区国产精品视频| 欧美成人免费播放| 亚洲欧洲自拍偷拍| 国产亚洲人成a一在线v站| 国产精品综合久久久| 国产婷婷色综合av蜜臀av| 中文字幕日韩电影| 色婷婷综合久久久久中文字幕1| 欧美精品免费在线观看| …久久精品99久久香蕉国产| 久久乐国产精品| 精品久久国产精品| 国产日韩欧美一二三区| 69视频在线免费观看| 91久久综合亚洲鲁鲁五月天| 日韩亚洲欧美成人| 欧美日韩亚洲天堂| 国产精品视频xxxx| 国产精品∨欧美精品v日韩精品| 狠狠躁18三区二区一区| 日韩精品欧美国产精品忘忧草| 亚洲免费一级电影| 欧美日韩成人免费| 欧美性xxxx极品hd满灌| 97av在线视频| 国产成人欧美在线观看| 欧美另类第一页| 精品国产依人香蕉在线精品| 亚洲加勒比久久88色综合| 国产精品视频一区国模私拍| 国产精品一区二区3区| 精品视频在线导航| 国产手机视频精品| 成人中文字幕在线观看| 少妇高潮久久77777| 日韩av电影手机在线| 久久久欧美精品| 最新91在线视频| 亚洲欧美一区二区精品久久久| 欧美疯狂做受xxxx高潮| 欧美日韩中文字幕| 亚洲色图13p| 色偷偷噜噜噜亚洲男人的天堂| 亚洲一区亚洲二区| 91麻豆国产语对白在线观看| 97免费在线视频| 久久精品电影一区二区| 亚洲色图激情小说| 国产精品久久久久影院日本| 欧美日韩中文字幕| 国产性色av一区二区| 欧美黄色片在线观看| 日韩精品欧美国产精品忘忧草| 国产精品av在线播放| 国产伊人精品在线| 亚洲品质视频自拍网| 91久久在线播放| 国产精品国产自产拍高清av水多| 亚洲第一区中文字幕| 久青草国产97香蕉在线视频| 欧美丝袜一区二区三区| 精品香蕉在线观看视频一| 国产精品一区二区久久精品| 久久人体大胆视频| 久久久久久国产精品美女| 久久中文久久字幕| 精品国产999| 日本三级久久久| 欧美一级视频一区二区| 久久精品视频在线| 国产精品视频一区国模私拍| 一区二区福利视频| 欧美视频不卡中文| 91精品91久久久久久| 欧美日韩亚洲国产一区| 国内免费精品永久在线视频| 91久久精品久久国产性色也91| 色哟哟网站入口亚洲精品| 日韩av电影国产| 欧美黄色片免费观看| 一个人看的www久久| 日韩国产精品亚洲а∨天堂免| 国产精品入口免费视频一| 国产精品久久国产精品99gif|