0

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

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

例如:

ColumnA
1234.56789
123.4567890

将返回总共 11 个空格和小数点后 7 个空格。

它可以是两个单独的查询。

4

3 回答 3

3
SELECT len(ColumnA), len(columnA) - charIndex('.',ColumnA)
FROM theTable
于 2013-09-24T22:27:27.040 回答
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
于 2013-09-24T22:28:31.500 回答
0
SELECT ColumnA, Len(ColumnA) As Total, LEN(SUBSTRING(ColumnA,CHARINDEX('.',ColumnA,LEN(ColumnA)) As Decimal
FROM TABLE
于 2013-09-24T22:36:43.503 回答