我想计算数值列中值的长度。值随机为
255.0125 , 28847.0125 etc
我只需要小数位前的值的长度。到目前为止,第一个值应该是3,第二个值应该是5.
这里有什么SQL功能可以帮到你。
答案 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)