在十进制数中找到小数点的位置

时间:2013-10-28 16:30:20

标签: sql sql-server

如何使用sql查询在SQL Server中以十进制数字找到小数点的位置

示例:

123567.89

输出:7

2 个答案:

答案 0 :(得分:2)

select charindex('.', cast(123567.89 as varchar))

SQLFiddle demo

答案 1 :(得分:0)

declare @T decimal(38,1) = 1234567890123456789012345678901234567.1;
select charindex('.', cast(@T as varchar(40)));

如果仅使用varchar,则默认大小为30;因此,它失败了。除此之外,如果它在计算列中并且使用了varchar,则默认大小为1。

40 = 38 +'小数点'加'符号'

--select charindex('.', cast(@T as varchar)); -- Uncomment and it'll fail