Подтвердить что ты не робот

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

Использование SQL Server 2005

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

Столбец1

12345
asdf
2312
ase
acd
...,

Пробный запрос

Select Isnumeric(column1) from table

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

1
0
1
0
0
..,

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

Необходимость помощи SQL Server

4b9b3361

Ответ 1

SELECT column1 FROM table WHERE ISNUMERIC(column1) = 1

Заметьте, что Damien_The_Unbeliever указал, это будет включать любой действительный числовой тип.

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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

SELECT column1 FROM table WHERE Isnumeric(column1);

Ответ 4

Используйте этот [Tested]

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

Ответ 5

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

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