SqlSerVer數據庫的SQl語句: FOR XML PATH 用法

1.學習網址:https://www.cnblogs.com/zk-zhou/p/6389185.html

2.sql語句如下:

USE TaskTracker
GO
--普通查詢
SELECT GradeName FROM GradeTable
GO
--查詢數據如下:
GradeName
  1年級
  2年級
  3年級
  4年級
  5年級
  6年級
  7年級
  8年級


--下面每個節點都包含兩個:前和後
--默認行節點用<row>隔開,列節點用字段名隔開
SELECT GradeName FROM GradeTable FOR XML PATH
GO
--查詢數據如下:
<row>
  <GradeName>1年級</GradeName>
</row>
<row>
  <GradeName>2年級</GradeName>
</row>
<row>
  <GradeName>3年級</GradeName>
</row>


--多個列節點用多個字段名隔開(下面以單個列節點爲例)
SELECT * FROM GradeTable FOR XML PATH
GO
--查詢數據如下:
<row>
  <GradeId>1</GradeId>
  <GradeNumber>1</GradeNumber>
  <GradeName>1年級</GradeName>
  <Status>1</Status>
  <AddTime>2019-03-12T16:53:58.837</AddTime>
</row>
<row>
  <GradeId>2</GradeId>
  <GradeNumber>2</GradeNumber>
  <GradeName>2年級</GradeName>
  <Status>1</Status>
  <AddTime>2019-03-12T16:53:58.837</AddTime>
</row>
<row>
  <GradeId>3</GradeId>
  <GradeNumber>3</GradeNumber>
  <GradeName>3年級</GradeName>
  <Status>1</Status>
  <AddTime>2019-03-12T16:53:58.837</AddTime>
</row>


--行節點名稱改爲'' ,也就是沒有行節點了。(你可以改成自己想要的行節點)
SELECT GradeName FROM GradeTable FOR XML PATH('')
GO
--查詢數據如下:
<GradeName>1年級</GradeName>
<GradeName>2年級</GradeName>
<GradeName>3年級</GradeName>


--進一步簡化,前列節點無,後列節點改用逗號隔開,只能用於單個字段
SELECT GradeName+',' FROM GradeTable FOR XML PATH('')
GO
--查詢數據如下:
1年級,2年級,3年級,


--前列節點改用逗號隔開,後列節點無
SELECT ','+GradeName FROM GradeTable FOR XML PATH('')
GO
--查詢數據如下:
,1年級,2年級,3年級


--修改前列節點爲 (  ,修改後列節點爲 )
SELECT TOP 3 '('+GradeName+')' FROM GradeTable FOR XML PATH('')
--查詢數據如下:
(1年級)(2年級)(3年級)


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章