计算小数点前后的空格

时间:2013-09-24 22:24:19

标签: sql sql-server-2005

我将数据设置为varchar(500),但我只知道它是数字还是字符。

我需要计算列长度的最大空格和小数点后的最大空格。

例如:

ColumnA
1234.56789
123.4567890

将返回11个空格,小数点后7个空格。

可以是两个单独的查询。

3 个答案:

答案 0 :(得分:3)

SELECT len(ColumnA), len(columnA) - charIndex('.',ColumnA)
FROM theTable

答案 1 :(得分:2)

SELECT LEN(ColumnA )
      ,CHARINDEX('.',REVERSE(ColumnA ))-1
FROM Table1

如果某个值没有小数,则上面的小数后面的空格将返回-1,因此您可以使用:

SELECT LEN(ColumnA)
      ,CASE WHEN ColumnA LIKE '%.%' THEN CHARINDEX('.',REVERSE(ColumnA))-1
            ELSE 0
       END
FROM Table1

两者的演示:SQL Fiddle

如果你只想要MAX(),那么你只需将上面的内容包装在MAX()中:

SELECT MAX(LEN(ColumnA ))
      ,MAX(CHARINDEX('.',REVERSE(ColumnA ))-1)
FROM Table1

答案 2 :(得分:0)

SELECT ColumnA, Len(ColumnA) As Total, LEN(SUBSTRING(ColumnA,CHARINDEX('.',ColumnA,LEN(ColumnA)) As Decimal
FROM TABLE