问题:当我运行下面的代码时,输出为浮点字段的XML,出现为0.000000000000000e + 000我希望它为空或因为它的XML根本不出现。从SQL处理空白浮点数问题
思考:我想COALESCE(c.ProductType,'')
以及COALESCE(c.ProductType,'999')
我与999想看看发生了什么,但是在这两种情况下<ProductType>
从XML饲料无缘,但价值0.000000000000000e + 000仍会返回。
查询:如何处理XML,从SQL,其中浮动是空白
代码创建的:(显示两个节目,而不是全部)
USE DATABASE
SELECT
e.UPRN
,c.ProductType AS ProductType
FROM TblTable e(NOLOCK)
JOIN
TblAsbestos c (NOLOCK)
ON e.UPRN = c.UPRN
WHERE e.UPRN = 'SH1266'
FOR XML PATH('XML_DATA') , ROOT ('SURVEYDATA')
XML输出:
<SURVEYDATA>
<XML_DATA>
<UPRN>SH1266</UPRN>
<LocationItemPosition>This works</LocationItemPosition>
<SurveyDate>2014-01-16T00:00:00</SurveyDate>
<SurveyCompany></SurveyCompany>
<ProductType>0.000000000000000e+000</ProductType>
</XML_DATA>
</SURVEYDATA>
哪个RDBMS是这个呢?请添加一个标签来指定您是使用'mysql','postgresql','sql-server','oracle'还是'db2' - 或者其他的东西。 –
我不确定为什么有人投票关闭,因为我一直无法在Stackoverflow上找到它。如果有一个很好的答案链接。 – indofraiser
浮动不能为空。它可以是NULL或0.如果你将一个空字符串转换为一个浮点数,它将被转换为0.作为附注,你对查询提示使用了不赞成使用的语法。 WITH关键字不再是可选的。一般来说,查询提示应该避免,除非你真的知道自己在做什么,并且所有其他选项都已经用尽。 NOLOCK提示特别讨厌。 http://blogs.sqlsentry.com/aaronbertrand/bad-habits-nolock-everywhere/ –