更新整个SQL Server列
问题描述:
我有一个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' 是在表中的主键。该错误是关键字附近的语法不正确“选择”
答
试试这个:
UPDATE Graph SET Probability = CAST(ROUND(Probability , 2, 1) AS DECIMAL (18, 2))
希望这有助于!
删除第二个'SELECT'因此'SET Probability = CAST(...' –
另外,请注意浮点数是近似值,所以即使是这一轮,您也可能获得像.1500000000000001这样的值。 –
@DanGuzman说的话。需要显式控制数据的小数长度,那么你应该使用像支持它的'Decimal(p,s)'这样的数据类型。 – RBarryYoung