[英]round function in sql server 2008
i have a query which rounds the value for the particular column name: 我有一个查询,它舍入特定列名称的值:
select round([CIMtrek_CI_Act],0) as CI FROM [CIMtrek_SystemTable_DatawareHouse]
where [CIMtrek_CI_Act_33] is not null and CIMtrek_CIMtrekUniqueID = 1917 其中[CIMtrek_CI_Act_33]不为null,CIMtrek_CIMtrekUniqueID = 1917
and the reulst is 而结果是
CI
1
but when i execute the following query : 但是当我执行以下查询时:
(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')
the result is 结果是
<Root>
<Record>
<CIMtrek_CIMtrekUniqueID>1917</CIMtrek_CIMtrekUniqueID>
<CIMtrek_CI_Act>1.000000000000000e+000</CIMtrek_CI_Act>
</Record>
</Root>
the value is not rounded. 该值未四舍五入。
if the value is 10.58
than i have to get 11
. 如果值是
10.58
比我必须得到11
。 Also the field is varchar
if there is no value i have to get empty
string than 0
. 另外,如果没有值,则该字段为
varchar
,我必须获得比0
empty
字符串。
what is the mistake i have done here and how to fix the same 我在这里犯了什么错误以及如何解决相同的问题
It is rounded. 它是四舍五入的。 What you see is the XML textual representation of SQL Server's
float
. 您将看到SQL Server
float
的XML文本表示形式。
If you don't like that, cast it to an integer after rounding. 如果您不喜欢,请在四舍五入后将其转换为整数。
cast(round([T1].[CIMtrek_CI_Act],0) as int)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.