这是我的代码
select len(cast(code as float)),code
from tbl1
where code is not null
这是输出结果:
我需要统计代码列中数字的数量。 不理解为什么最后一个数字被计算成12而不是8?
这是我的代码
select len(cast(code as float)),code
from tbl1
where code is not null
这是输出结果:
我需要统计代码列中数字的数量。 不理解为什么最后一个数字被计算成12而不是8?
int
类型:select len(cast(code as int)), code
from tbl1
where code is not null;
可以推测是某种十进制数正在被计算。
获取数字的10的幂并加1。这适用于整数或实数,以计算整数部分的数字数量(请注意,仅使用LOG10可以处理正数,因此我已应用ABS来解决此问题,您的数据可能不需要):
SELECT code, CASE WHEN Number = 0 THEN 1
ELSE FLOOR(LOG10(ABS(code))) + 1 AS NDigits
FROM tbl1
select cast(code as float)
来查看它获取的长度。 - Barmar