我找到了一些简单的脚本(相对于我而言)来处理此问题。
ISNULL(NULLIF(CHARINDEX('.',REVERSe(ConVERT(VARCHAr(50), Amount, 128))),0) - 1,0)此处
ISNULL(NULLIF仅用于处理不带小数部分的浮点数。如果没有没有小数部分的值,那么这很简单
CHARINDEX('.',REVERSe(ConVERT(VARCHAr(50), Amount, 128))) -1希望对您有帮助。完整脚本如下
declare @YourTable table (Amount float)insert into @YourTablevalues(123),(123.1),(123.0123),(123.789456)SELECt ISNULL(NULLIF(CHARINDEX('.',REVERSe(ConVERT(VARCHAr(50), Amount, 128))),0) - 1,0)FROM @YourTableSELECt CHARINDEX('.',REVERSe(ConVERT(VARCHAr(50), Amount, 128))) -1 FROM @YourTable


