2017-08-01 51 views
0

我有一個SQL Server表具有數據類型「概率」列浮點數。此列中包含的值,例如:更新整個SQL Server列

| Probability |   | Probability | 
---------------   --------------- 
| 0.052325243 |   | 0.05  | 
| 0.155062365 |   | 0.15  | 
| 0.347534343 |  => | 0.34  | 
| 0.234532345 |   | 0.23  | 
| ...   |   | ...   | 
| ...   |   | ...   | 
| ...   |   | ...   | 

我需要縮短在同一列中的值的右側所示。

我試圖作爲查詢:

UPDATE Graph 
SET Probability = SELECT CAST(ROUND(ID, 2, 1) AS DECIMAL (18, 2)) 

其中 'ID' 是在表中的主鍵。該錯誤是關鍵字附近的語法不正確「選擇」

+3

刪除第二個'SELECT'因此'SET Probability = CAST(...' –

+3

另外,請注意浮點數是近似值,所以即使是這一輪,您也可能獲得像.1500000000000001這樣的值。 –

+0

@DanGuzman說的話。需要顯式控制數據的小數長度,那麼你應該使用像支持它的'Decimal(p,s)'這樣的數據類型。 – RBarryYoung

回答

0

試試這個:

UPDATE Graph SET Probability = CAST(ROUND(Probability , 2, 1) AS DECIMAL (18, 2)) 

希望這有助於!