【发布时间】:2021-12-14 02:41:25
【问题描述】:
我编写了一个查询以从 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>
【问题讨论】:
标签: sql sql-server sql-server-2012 for-xml