Sql 计算小数点前后的空格
我将数据集设置为varchar(500),但我只知道它是数字还是字符 我需要计算列长度的最大空格和小数点后的最大空格 例如:Sql 计算小数点前后的空格,sql,sql-server-2005,Sql,Sql Server 2005,我将数据集设置为varchar(500),但我只知道它是数字还是字符 我需要计算列长度的最大空格和小数点后的最大空格 例如: ColumnA 1234.56789 123.4567890 总共返回11个空格,小数点后返回7个空格 它可以是两个单独的查询 SELECT len(ColumnA), len(columnA) - charIndex('.',ColumnA) FROM theTable 如果一个值没有小数点,则上面的小数点后的空格将返回-1,因此您可以使用: SELECT LEN(
ColumnA
1234.56789
123.4567890
总共返回11个空格,小数点后返回7个空格
它可以是两个单独的查询
SELECT len(ColumnA), len(columnA) - charIndex('.',ColumnA)
FROM theTable
如果一个值没有小数点,则上面的小数点后的空格将返回-1,因此您可以使用:
SELECT LEN(ColumnA)
,CASE WHEN ColumnA LIKE '%.%' THEN CHARINDEX('.',REVERSE(ColumnA))-1
ELSE 0
END
FROM Table1
演示两个:
如果您只是想要MAX()
,那么您只需将上述内容包装在MAX()
中:
如果一个值没有小数点,则上面的小数点后的空格将返回-1,因此您可以使用:
SELECT LEN(ColumnA)
,CASE WHEN ColumnA LIKE '%.%' THEN CHARINDEX('.',REVERSE(ColumnA))-1
ELSE 0
END
FROM Table1
演示两个:
如果您只是想要MAX()
,那么您只需将上述内容包装在MAX()
中:
嗯,
LEN()
?你试过自己做研究吗?它的结果是什么?空格还是字符?嗯,LEN()
?你试过自己做研究吗?结果是什么?空格还是字符?注意:如果没有小数,则长度将在两个字段中返回。注意:如果没有小数,则长度将在两个字段中返回。
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