我幾乎完成了我需要的內容,但是最後一件事情是錯過了。我有2個表被連接來創建一個XML輸出。我需要在同一個SELECT語句中使用這兩個表的元素,但是在做這些工作時遇到了麻煩。此代碼是我所擁有的:在SQL Server 2014中使用XML EXPLICIT構建XML輸出
SELECT
1 as Tag,
0 as Parent,
RTRIM(dbo.DataItemInfo.DataItem) as [DataItem!1!name]
--RTRIM(dbo.DataItemInfo.DataItem) as [dbo.DataSchedule.DataItemValue!1!]
FROM
dbo.DataItemInfo
INNER JOIN
dbo.DataSchedule
ON dbo.DataSchedule.SignID = dbo.DataItemInfo.SignID
AND [email protected]
AND dbo.DataSchedule.ScheduleID = dbo.DataItemInfo.ScheduleID
FOR XML EXPLICIT, ROOT('DataItems')
其中註釋掉的部分是我嘗試過的東西之一。目前,它產生的輸出:
<DataItems>
<DataItem name="Test1" />
<DataItem name="Test2" />
<DataItem name="Test3" />
<DataItem name="Test4" />
<DataItem name="Test5" />
</DataItems>
但我想:
<DataItems>
<DataItem name="Test1">ValFromScheduleTableHere<DataItem/>
<DataItem name="Test2">ValFromScheduleTableHere<DataItem/>
<DataItem name="Test3">ValFromScheduleTableHere<DataItem/>
<DataItem name="Test4">ValFromScheduleTableHere<DataItem/>
<DataItem name="Test5">ValFromScheduleTableHere<DataItem/>
</DataItems>
我知道如何從原始表填充「ValFromScheduleTableHere」,但不能從第二個表。謝謝您的幫助。
爲什麼不使用'FOR XML PATH'?與'FOR XML EXPLICIT'相比,它通常更容易理解並得到你想要的結果...... – 2014-11-14 16:21:12
也許它會更容易,但是一旦我完成了這個小事情,我就完成了。 – Cory 2014-11-14 16:24:30
我一直在使用sql server近9年,而且我只看到過一次使用'EXPLICIT'的XML查詢並且無法理解它,據我所知我必須使用FOR XML PATH( ''),在內部選擇TYPE來獲得相同的結果。 – 2014-11-14 16:37:04