【发布时间】:2015-04-30 05:54:42
【问题描述】:
我在这里的第一个问题,但我已经从这个伟大的网站阅读和学习了很多东西。 简短的介绍,我是一家全球公司的应用程序支持专家。 11 月开始,但已经忙于工作。
目前我正在从我们的 SQL Server 环境创建 XML 文件,以便向匈牙利海关申报我们的货物。在 Stackoverflow 线程的帮助下,一切都已经很好了。 现在我正在执行微调任务,并且正在努力解决以下问题。
在 XML 中有一些可选字段,有时需要填写,但并非总是如此。麻烦的是,当字段为空时,XML 将失败。因此,当为空时,不应包含完整的标签。并且当该字段被填充时,标签和数据应该包含在 XML 文件中。
示例;
SELECT [LocationName] as name
,[LocationPhone] as phone
,[LocationEmail] as email
,[LocationCountry] as country
,[LocationCity] as city
FROM [XML_view]
FOR XML PATH ('Location'), ELEMENTS, TYPE
姓名、国家和城市是必填项且始终填写,但电话和电子邮件可能为空,也可能不为空。
现在结果如下;
<Location
<name>BuildingOne</name>
<phone />
<email />
<country>NL</country>
<city>Amsterdam</city>
</Location>
但我希望电话和电子邮件在它们为空时不在 XML 中。
我尝试使用 IF EXISTS 和 IF NOT NULL,但这不起作用。 有人有什么建议吗?
【问题讨论】:
-
如果您的查询返回多行且有些手机是空的而有些则不是,该怎么办?
-
这是 XML 的一部分,仅包含一次,但要回答您的问题;如果某些位置有电话而其他位置没有,那么我想将电话包含在有电话的结果中,并将电话标签从没有电话的结果中删除。
标签: sql xml sql-server-2008