在工作中遇到,一個多表聯合查詢的情況,查詢出來的有些字段精度太高,小數點后達到8個0,現在客戶要求報表只要精確到0.01 ,就是只要小數點后面只要保存兩位,另外還需要四舍五入
在網上找了點資料,自己測試了下,下面給大家分享下:
---創建一個測試表
USE test
CREATE TABLE studentscore
(
id INT IDENTITY(1,1) PRIMARY KEY ,
Score VARCHAR(20)
)
下面是截圖,插入這些數據

1.不改變表中的值,只在查詢時顯示,四舍五入只保留兩位小數
select Convert(decimal(18,2), Score) from studentscore
執行結果:

2.直接更新表中的值,四舍五入只保留兩位小數
update studentscore set Score = cast(cast(round(Score,2) as float ) as varchar)
where charindex('.',REVERSE(cast(Score as varchar(50))))-1>3
更新后的數據庫:
