我已經瀏覽了幾個關於使用FOR XML的SO問題,但沒有找到任何特定於我的查詢的內容。Sql ForXml;連接字段返回逗號分隔列表或空字符串
幸運的是,我需要提交數據的服務需要我的表中的字段作爲屬性而不是元素提交,這意味着我可以使用FOR XML AUTO。然而,它確實需要一些我不確定如何編寫正確的sql來實現的東西,爲此我歡迎一些建議。
某些字段(假設我有三個名爲Log1,Log2和Log3)需要返回作爲參數調用Logs的一個屬性。如果所有三個日誌字段都是Null,那麼它需要是一個空字符串,或者如果它們包含數據,則它們需要與逗號作爲分隔符連接。我懷疑一個簡單的Coalesce並不是這裏的答案,但我不完全確定還有什麼可以做的。
正如我所說,我會歡迎一些建議。謝謝。
編輯
道歉,應該添加一些sql來協助。
SELECT LandingId,
VesselId,
TicketNumber,
CONVERT(VARCHAR(10),LandingDate1,112) AS landingdate1,
Log1,
Log2,
Log3,
COALESCE(VesselName,'') AS vesselName,
VesselOwner
FROM Landings.LandingHeaders AS sale FOR XML AUTO
LOG1,LOG2和LOG3應該成爲日誌,是一個空字符串,如果所有都爲空或逗號分隔的列表,如果它們包含的數據。
EDIT2(電流輸出與VesselName和所有者移除保護機密)
<sale LandingId="3388" VesselId="1" TicketNumber="1 " landingdate1="20130705" />
屁股登錄值都爲空什麼都沒有回來,不知道我是否可以使用聚結的形式要麼產生空字符串,要麼產生逗號分隔列表。 我知道我需要修改ticketNumber。
如果您添加一些示例數據,您現在使用的查詢和預期結果我們將能夠更好地幫助您 –
如果您將提供所需的xml結構以及sql方案和某些查詢嘗試 - 建議一些東西會容易得多。現在你的問題沒有太多可讀性和清晰度。 –
已經添加了sql,我很抱歉沒有這麼做過。 –