Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - SQL 用法 » 数据库中的 XML » XML 格式的查询结果 » 使用 FOR XML 子句以 XML 格式检索查询结果

 

FOR XML 和 NULL 值

缺省情况下,结果中会忽略包含 NULL 值的元素和属性。此行为是由 for_xml_null_treatment 选项控制的。

假定 Customers 表中存在一个包含 NULL 公司名的条目。

INSERT INTO Customers( ID, Surname, GivenName, Street, City, Phone) 
VALUES (100,'Robert','Michael', '100 Anywhere Lane','Smallville','519-555-3344');

如果您将 for_xml_null_treatment 选项设置为 Omit(缺省值)后执行以下查询,则不会为 NULL 列值生成属性。

SELECT ID, GivenName, Surname, CompanyName
FROM Customers
WHERE GivenName LIKE 'Michael%'
ORDER BY ID
FOR XML RAW;

在本例中,不会为 Michael Robert 生成 CompanyName 属性。

<row ID="100" GivenName="Michael" Surname="Robert"/>
<row ID="101" GivenName="Michaels" Surname="Devlin" CompanyName="The Power Group"/>
<row ID="110" GivenName="Michael" Surname="Agliori" CompanyName="The Pep Squad"/>

如果 for_xml_null_treatment 选项设置为 Empty,那么结果中就会包括一个空属性:

<row ID="100" GivenName="Michael" Surname="Robert" CompanyName=""/>
<row ID="101" GivenName="Michaels" Surname="Devlin" CompanyName="The Power Group"/>
<row ID="110" GivenName="Michael" Surname="Agliori" CompanyName="The Pep Squad"/>

在本例中,将会为 Michael Robert 生成一个空 CompanyName 属性。

 另请参见