在SQL中運用For XML將數據集以XML形式展現,以下是備用數據
CREATE
TABLE
#tab(ID
INT
, Name
NVARCHAR
(
20
))
INSERT
INTO
#tab ( ID, Name )
SELECT
1
,N
'
chris
'
UNION
SELECT
2
,N
'
mark
'
UNION
SELECT
3
,N
'
andy
'
1、AUTO模式,將查詢結果的每一行轉為元素,元素名以表名命名,每一列(非NULL)轉換成row元素的屬性。
SELECT
*
FROM
#tab
FOR
XML AUTO
<
_x0023_tab
ID
="1"
Name
="chris"
/>
<
_x0023_tab
ID
="2"
Name
="mark"
/>
<
_x0023_tab
ID
="3"
Name
="andy"
/>
2、RAW模式,和AUTO類似,只是元素以row命名。
SELECT
*
FROM
#tab
FOR
XML
RAW
<
row
ID
="1"
Name
="chris"
/>
<
row
ID
="2"
Name
="mark"
/>
<
row
ID
="3"
Name
="andy"
/>
3、ELEMENTS,將每一列作為一個元素。
SELECT
*
FROM
#tab
FOR
XML AUTO,ELEMENTS
<
_x0023_tab
>
<
ID
>
1
</
ID
>
<
Name
>
chris
</
Name
>
</
_x0023_tab
>
<
_x0023_tab
>
<
ID
>
2
</
ID
>
<
Name
>
mark
</
Name
>
</
_x0023_tab
>
<
_x0023_tab
>
<
ID
>
3
</
ID
>
<
Name
>
andy
</
Name
>
</
_x0023_tab
>
4、PATH,用法更加靈活,可以自定義節點、元素、屬性等。ROOT,增加根節點。
SELECT
*
FROM
#tab
FOR
XML PATH(
'
employee
'
),ELEMENTS
<
employee
>
<
ID
>
1
</
ID
>
<
Name
>
chris
</
Name
>
</
employee
>
<
employee
>
<
ID
>
2
</
ID
>
<
Name
>
mark
</
Name
>
</
employee
>
<
employee
>
<
ID
>
3
</
ID
>
<
Name
>
andy
</
Name
>
</
employee
>
SELECT
ID
AS
'
staff/@ID
'
,NAME
AS
'
staff/@Name
'
,
''
,
ID
AS
'
ID
'
,
''
, NAME
AS
'
Name
'
FROM
#tab
FOR
XML PATH(
'
employee
'
),ROOT(
'
all
'
)
<
all
>
<
employee
>
<
staff
ID
="1"
Name
="chris"
/>
<
ID
>
1
</
ID
>
<
Name
>
chris
</
Name
>
</
employee
>
<
employee
>
<
staff
ID
="2"
Name
="mark"
/>
<
ID
>
2
</
ID
>
<
Name
>
mark
</
Name
>
</
employee
>
<
employee
>
<
staff
ID
="3"
Name
="andy"
/>
<
ID
>
3
</
ID
>
<
Name
>
andy
</
Name
>
</
employee
>
</
all
>
?
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

