SQL Server:计算小数位前的长度

时间:2015-08-20 11:39:52

标签: sql-server sql-server-2008

我想计算数值列中值的长度。值随机为

255.0125 , 28847.0125 etc

我只需要小数位前的值的长度。到目前为止,第一个值应该是3,第二个值应该是5.

这里有什么SQL功能可以帮到你。

3 个答案:

答案 0 :(得分:4)

我建议使用FLOOR功能,如果数字可以是负数,也可以添加ABS:

SELECT LEN(FLOOR(9.99999))
SELECT LEN(FLOOR(ABS(-9.99999)))

这将失败

SELECT LEN(cast(-9.99999 as int))--Result 2
SELECT LEN(FLOOR(-9.99999))--Result 3

答案 1 :(得分:1)

尝试:

select len(cast(999999999.99999 as int))

select len(cast(28847.0125 as int))

或者

select len(cast('28847.0125' as decimal))

或者

select len(round('28847.0125', 0, 1))

或者

编辑2 deepanshu-kalra 的建议 :

SELECT LEN(FLOOR(9.99999))

答案 2 :(得分:0)

使用ROUND()函数,它将十进制转换为int,然后使用LEN()

查询将是

select LEN(ROUND('255.0125', 0))

ROUND()函数systax:

ROUND(value,decimalPlace)