[英]Xml creation with subattribute in sql
我有這樣的查詢:
SELECT
getdate()[createdon], 'www.google.com'[XMLNS],
Co.Country, IC.InterConnectionName as point,
SO.SOName[TSO], FD.GasDay, FD.CaptureDate,
CD.mwhentry AS entrymwh, CD.mwhexit AS exitmwh,
DS.State, (CD.MWHENTRY - CD.MWHEXIT) AS NETMWH,
(cd.mwhexit - cd.mwhexit) as NETMCH
FROM
TABLENAME
我希望將其轉換為xml
<gas-flow created-on="2012/06/02T10:30:01Z"
xmlns="www.google.com">
<country>Austria</country>
<point>TSO4</point>
<tso>BOG</tso>
<gas-day>2012/06/02</gas-day>
<capture-date>2012/06/02T10:30:00Z</capture-date>
<state version="1">provisional</state>
<entry mwh="558234" mcm="52.80"/>
<exit mwh="0" mcm="0"/>
<net mwh="558234" mcm="52.80"/>
</gas-flow>
如果我這樣做
FOR XML RAW ('gasflow'), ROOT ('FLOWDATAID'), ELEMENTS
我也獲得了標簽之間的數據,但問題是
entry tag, exit tag and net mwh
必須像這樣
謝謝您的幫助..
您需要檢查FOR XML PATH()
語法 -它比FOR XML RAW
靈活得多,並且允許您執行諸如將某些輸出指定為屬性(而不是元素)之類的操作。
所以嘗試這樣的事情:
;WITH XMLNAMESPACES (DEFAULT 'www.google.com')
SELECT
GETDATE() AS '@created-on',
CO.Country,
IC.InterConnectionName AS 'point',
SO.SOName AS TSO,
FD.GasDay,
FD.CaptureDate,
'1' AS 'State/@version',
[DS.State],
CD.mwhentry AS 'entry/@mwh',
CD.mcmEntry AS 'entry/@mcm',
CD.mwhexit AS 'exit/@mwh',
CD.mcmexit AS 'exit/@mcm',
(CD.MWHENTRY - CD.MWHEXIT) AS 'net/@mwh',
(CD.MWHexit - CD.MWHexit) AS 'net/@mcm'
FROM
dbo.YourTableNameHere
FOR XML PATH('gas-flow'), ROOT ('FLOWDATAID')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.