我撰寫了一個查詢來以 XML 格式從表中獲取資料,但是如果列沒有任何資料,那么它不會在 XML 輸出中回傳資料。請讓我知道如何解決這個問題。
我需要得到輸出,即使它們在帶有空標簽的表列中沒有資料 - 像這樣"</BatchEntryId>"。這BatchEntryId是表中的NULL
我的查詢:
SELECT
Data.value('(/Data/Reference)[1]', 'nvarchar(10)') AS PolicyNumber,
[RequestId],
[BatchEntryId],
[StatusCode],
[PaymentMethodCode],
Data.value('(/Data/Amount)[1]', 'nvarchar(10)') AS Amount
FROM
[dbo].[TransmissionData]
WHERE
RequestId = 2031070233
FOR XML RAW ('RequestRecord'), ELEMENTS, TYPE
我的輸出:
<RequestRecord>
<PolicyNumber>Policy034</PolicyNumber>
<RequestId>2031070233</RequestId>
<StatusCode>A</StatusCode>
<PaymentMethodCode>1XCC</PaymentMethodCode>
<Amount>200.00</Amount>
</RequestRecord>
問題是'BatchEntryId'我沒有在輸出 XML 中得到,因為該列具有 NULL 值。但我也需要在輸出 XML 中將其作為空標簽,就像這樣</BatchEntryId>。
請讓我知道,如何解決這個問題。
我正在尋找這樣的輸出:
<RequestRecord>
<PolicyNumber>Policy034</PolicyNumber>
<RequestId>2031070233</RequestId>
<BatchEntryId/>
<StatusCode>A</StatusCode>
<PaymentMethodCode>1XCC</PaymentMethodCode>
<Amount>200.00</Amount>
</RequestRecord>
uj5u.com熱心網友回復:
你可以ISNULL把它變成一個空字串
SELECT Data.value('(/Data/Reference)[1]', 'nvarchar(10)') as PolicyNumber
,[RequestId]
,ISNULL([BatchEntryId], '') AS BatchEntryId
,[StatusCode]
,[PaymentMethodCode]
,Data.value('(/Data/Amount)[1]', 'nvarchar(10)') as Amount
FROM [dbo].[TransmissionData]
WHERE RequestId = 2031070233
FOR XML RAW ('RequestRecord'), ELEMENTS, TYPE
如果BatchEntryId不是,varchar或者nvarchar你應該先施放它
ISNULL(CAST(BatchEntryId AS varchar(30)), '') AS BatchEntryId
請注意,SQL Server 將其生成為
<BatchEntryId></BatchEntryId>
然而,這在 XML 中在語意上等同于
<BatchEntryId/>
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/341123.html
