我将数据集设置为varchar(500),但我只知道它是数字还是字符。计算小数点前后的空格
我需要计算一列的长度和小数点后的最大空格的最大空格。
例如:
ColumnA
1234.56789
123.4567890
将返回11位总和小数点后7位。
它可以是两个单独的查询。
我将数据集设置为varchar(500),但我只知道它是数字还是字符。计算小数点前后的空格
我需要计算一列的长度和小数点后的最大空格的最大空格。
例如:
ColumnA
1234.56789
123.4567890
将返回11位总和小数点后7位。
它可以是两个单独的查询。
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 len(ColumnA), len(columnA) - charIndex('.',ColumnA)
FROM theTable
注意:如果没有小数点,则长度将在两个字段中返回。 –
SELECT ColumnA, Len(ColumnA) As Total, LEN(SUBSTRING(ColumnA,CHARINDEX('.',ColumnA,LEN(ColumnA)) As Decimal
FROM TABLE
呃,'LEN()'?你有没有试图做出自己的研究?它的结果是什么? – zerkms
空格或字符? –