簡體   English   中英

SQL Server 2008中的圓形函數

[英]round function in sql server 2008

我有一個查詢,它舍入特定列名稱的值:

  select round([CIMtrek_CI_Act],0) as CI FROM [CIMtrek_SystemTable_DatawareHouse]

其中[CIMtrek_CI_Act_33]不為null,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 ,我必須獲得比0 empty字符串。

我在這里犯了什么錯誤以及如何解決相同的問題

它是四舍五入的。 您將看到SQL Server float的XML文本表示形式。

如果您不喜歡,請在四舍五入后將其轉換為整數。

cast(round([T1].[CIMtrek_CI_Act],0) as int)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM