小编典典

确定列上使用的MAX小数位数

sql

在MS SQL中,我需要一种方法来确定特定十进制列的行所使用的最大比例。

例如,Col1 Decimal(19,8)的小数位数为8,但是我需要知道是否实际上全部使用了8个,或者仅使用了5个,6个或7个。

样本数据:

123.12345000
321.43210000
5255.12340000
5244.12345000

对于上面的数据,我需要查询返回5或123.12345000或5244.12345000。

我不关心性能,我确定将进行全表扫描,我只需要运行一次查询即可。


阅读 168

收藏
2021-04-22

共1个答案

小编典典

不漂亮,但我认为应该可以解决问题:

-- Find the first non-zero character in the reversed string...
-- And then subtract from the scale of the decimal + 1.
SELECT 9 - PATINDEX('%[1-9]%', REVERSE(Col1))
2021-04-22