2013-09-24 2 views
0

У меня есть набор данных как varchar (500), но я знаю только, является ли это числовым или символьным.Подсчет пробелов до и после десятичной точки

Мне нужно посчитать максимальные пробелы длины столбца И максимальные пробелы после десятичной точки.

Для примера:

ColumnA 
1234.56789 
123.4567890 

вернутся 11 пространства всего и 7 пробелы после десятичной запятой.

Это могут быть два отдельных запроса.

+0

Uhm, 'LEN()'? Вы пытались провести собственное исследование? Каковы его результаты? – zerkms

+0

пробелы или символы? –

ответ

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():

SELECT MAX(LEN(ColumnA)) 
     ,MAX(CHARINDEX('.',REVERSE(ColumnA))-1) 
FROM Table1 
3
SELECT len(ColumnA), len(columnA) - charIndex('.',ColumnA) 
FROM theTable 
+1

Примечание: если десятичная дробь отсутствует, длина будет возвращена в обоих полях. –

0
SELECT ColumnA, Len(ColumnA) As Total, LEN(SUBSTRING(ColumnA,CHARINDEX('.',ColumnA,LEN(ColumnA)) As Decimal 
FROM TABLE 
Смежные вопросы