我有一个查询来舍入特定列名的值:
select round([CIMtrek_CI_Act],0) as CI FROM [CIMtrek_SystemTable_DatawareHouse]
其中[CIMtrek_CI_Act_33]不为空且CIMtrek_CIMtrekUniqueID = 1917
,最好的是
CI
1
但是当我执行以下查询时:
(SELECT (SELECT [T1].[CIMtrek_CIMtrekUniqueID] AS [CIMtrek_CIMtrekUniqueID]
,round([T1].[CIMtrek_CI_Act],0) AS [CIMtrek_CI_Act]
FROM [CIMtrek_SystemTable_DatawareHouse] T1
WHERE T1.CIMtrek_CIMtrekUniqueID = 1917
FOR XML PATH('Record'), TYPE )) FOR XML PATH('Root')
结果是
<Root>
<Record>
<CIMtrek_CIMtrekUniqueID>1917</CIMtrek_CIMtrekUniqueID>
<CIMtrek_CI_Act>1.000000000000000e+000</CIMtrek_CI_Act>
</Record>
</Root>
该值未四舍五入。
如果值为10.58
,则必须获得11
。此字段为varchar
如果没有值,我必须获得empty
字符串而不是0
。
我在这里做了什么错误以及如何修复相同的
答案 0 :(得分:3)
圆润。您看到的是SQL Server float
的XML文本表示。
如果您不喜欢这样,请在舍入后将其强制转换为整数。
cast(round([T1].[CIMtrek_CI_Act],0) as int)