Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 计算小数点前后的空格_Sql_Sql Server 2005 - Fatal编程技术网

Sql 计算小数点前后的空格

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(

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

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

例如:

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