在列中计算数字的数量

7

这是我的代码

select len(cast(code as float)),code 
from tbl1
where code is not null

这是输出结果:

输入图片说明

我需要统计代码列中数字的数量。 不理解为什么最后一个数字被计算成12而不是8?


尝试使用 select cast(code as float) 来查看它获取的长度。 - Barmar
可能右边会有空格吗? - Brian DeMilia
加载表格时出现了错误。在这种情况下,我应该删除这篇文章吗? - user2343837
2个回答

5
将其转换为int类型:
select len(cast(code as int)), code 
from tbl1
where code is not null;

可以推测是某种十进制数正在被计算。


4

获取数字的10的幂并加1。这适用于整数或实数,以计算整数部分的数字数量(请注意,仅使用LOG10可以处理正数,因此我已应用ABS来解决此问题,您的数据可能不需要):

SELECT code, CASE WHEN Number = 0 THEN 1
                  ELSE FLOOR(LOG10(ABS(code))) + 1 AS NDigits
FROM tbl1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接