在MS SQL中,我需要一种方法来确定特定十进制列的行所使用的最大比例。
例如,Col1 Decimal(19,8)的小数位数为8,但是我需要知道是否实际上全部使用了8个,或者仅使用了5个,6个或7个。
样本数据:
123.12345000 321.43210000 5255.12340000 5244.12345000
对于上面的数据,我需要查询返回5或123.12345000或5244.12345000。
我不关心性能,我确定将进行全表扫描,我只需要运行一次查询即可。
不漂亮,但我认为应该可以解决问题:
-- 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))