我将数据集设置为 varchar(500),但我只知道它是数字还是字符。
我需要计算一列长度的最大空格和小数点后的最大空格。
例如:
ColumnA
1234.56789
123.4567890
将返回总共 11 个空格和小数点后 7 个空格。
它可以是两个单独的查询。
我将数据集设置为 varchar(500),但我只知道它是数字还是字符。
我需要计算一列长度的最大空格和小数点后的最大空格。
例如:
ColumnA
1234.56789
123.4567890
将返回总共 11 个空格和小数点后 7 个空格。
它可以是两个单独的查询。
SELECT len(ColumnA), len(columnA) - charIndex('.',ColumnA)
FROM theTable
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
SELECT ColumnA, Len(ColumnA) As Total, LEN(SUBSTRING(ColumnA,CHARINDEX('.',ColumnA,LEN(ColumnA)) As Decimal
FROM TABLE