2009-12-07 5 views
17

Использование SQL Server 2005Как получить только числовые значения столбца?

Я хочу, чтобы получить только числовые значения из таблицы

COLUMN1

12345 
asdf 
2312 
ase 
acd 
..., 

Пробовал Query

Select Isnumeric(column1) from table 

Отображение результатов, как

1 
0 
1 
0 
0 
.., 

мне нужно colum1 числовое значение

Необходимость запросов SQL Server помогает

ответ

46
SELECT column1 FROM table WHERE ISNUMERIC(column1) = 1 

Примечание как Damien_The_Unbeliever has pointed out, это будет включать в себя любые valid numeric type.

Чтобы отфильтровать столбцы, содержащие нецифровые символы (и пустые строки), вы можете использовать

SELECT column1 FROM table WHERE column1 not like '%[^0-9]%' and column1 != '' 
3

Попробуйте использовать WHERE пункт:

SELECT column1 FROM table WHERE Isnumeric(column1); 
32

другие ответы, указывающие, используя IsNumeric в где предложение правильное, насколько они идут, но важно помнить, что он возвращает 1, если значение может быть преобразовано в любым числовым типом. Таким образом, странности, такие как «1d3», будут проходить через фильтр.

Если вам нужно только значение, состоящее из цифр, искать то, что в явном виде:

SELECT column1 FROM table WHERE column1 not like '%[^0-9]%' 

выше фильтрует отклонить любой столбец, который содержит нецифровой символ

Обратите внимание, что в любом случае, вы будете подвергать сканирование таблицы, индексы бесполезны для такого рода запросов.

+0

Обратите внимание, что 'not like '% [^ 0-9]%'' не отфильтровывает пустые значения. Если вы не хотите включать пустые строки, вам нужно добавить дополнительную проверку. – Olexa

0

Использовать этот [Проверено]

SELECT column1 FROM table WHERE Isnumeric(column1)=1; //will return if value is numeric 


SELECT column1 FROM table WHERE Isnumeric(column1)=0; //will return if value is not numeric 
0
SELECT column1 FROM table WHERE column1 not like '%[0-9]%' 

Снятие '^' сделал это для меня. Я смотрю на поле varchar, и когда я включил ^, он исключил все мои не-численные значения, которых я точно не хотел. Итак, удалив ^, я получил только нечисловые значения.

Смежные вопросы