<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      靈活運用 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)-1as 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)-1as 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)-1as hobby  就是來去掉逗號,并賦予有意義的列明!

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

      posted @ 2011-07-06 00:39  王波洋  閱讀(154091)  評論(62)    收藏  舉報
      主站蜘蛛池模板: 亚洲色偷偷色噜噜狠狠99 | 国产AV影片麻豆精品传媒| 久久se精品一区精品二区国产| 亚洲欧美日韩综合在线丁香| 国精品无码一区二区三区在线| 亚洲一本大道在线| 日韩精品卡一卡二卡三卡四 | 亚洲男人天堂2018| 国产另类ts人妖一区二区| 免费国产精品视频在线| 国产精品午夜福利精品| 日本熟妇大乳| 伊伊人成亚洲综合人网香| 樱花草视频www日本韩国| 亚洲欧洲日产国码无码久久99| 欧美变态另类牲交| 玩弄丰满少妇人妻视频| 国产精品久久久久aaaa| 久热这里只国产精品视频| 精品久久欧美熟妇www| 国产一区国产二区在线视频| 日本亚洲一区二区精品久久| 日韩无专区精品中文字幕| 无码中文字幕热热久久| 久久亚洲女同第一区综合| 好爽毛片一区二区三区四| 天堂…中文在线最新版在线| 国产精品色三级在线观看| 人妻影音先锋啪啪AV资源| 亚洲精品一区二区美女| 国内精品久久黄色三级乱| 国产自在自线午夜精品| 免费观看国产女人高潮视频| 国语自产精品视频在线看| 大地资源免费视频观看| 精品精品亚洲高清a毛片| 午夜一区二区三区视频| 国产成人久久综合第一区| 国产成人亚洲欧美二区综合| 午夜福利精品国产二区| 国产一区二区三区四区色|