在 MS SQL 中将数字格式化为 2 位小数而不进行舍入






1.03/5 (16投票s)
2004年10月15日

147508
将任何数字格式化为 2 位小数而不进行舍入
引言
如果你想将数字格式化为 2 位小数,而不进行四舍五入,这里有一个技巧。
在 SQL 中创建表
CREATE TABLE [Table1] (
[area] [float] NULL
)
插入一些数据
INSERT INTO Table1 ([area]) VALUES(12.693)
INSERT INTO Table1 ([area]) VALUES(1256.12963)
INSERT INTO Table1 ([area]) VALUES(25.998596)
INSERT INTO Table1 ([area]) VALUES(1.963)
现在是查询
select
cast(cast(area as int) as varchar(10)) + cast(substring(cast(area-cast(area as int) as varchar(10)),2,3) as varchar(4)),
FROM Table1
逻辑
1) 将数字转换为整数
2) 从实际数字中减去整数部分
3) 将步骤 2 的答案转换为 varchar 并截取字符串,以获取包含小数点的 3 位数字
4) 连接 (+) 步骤 1 和 2
祝你 SQL 愉快 :)