Как получить только числовые значения столбца? - PullRequest
21 голосов
/ 07 декабря 2009

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

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

Column1

12345
asdf
2312
ase
acd
...,

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

Select Isnumeric(column1) from table

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

1
0
1
0
0
..,

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

Нужна помощь SQL Server Query

Ответы [ 5 ]

54 голосов
/ 07 декабря 2009
SELECT column1 FROM table WHERE ISNUMERIC(column1) = 1

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

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

SELECT column1 FROM table WHERE column1 not like '%[^0-9]%' and column1 != ''
34 голосов
/ 07 декабря 2009

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

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

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

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

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

3 голосов
/ 07 декабря 2009

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

SELECT column1 FROM table WHERE Isnumeric(column1);
1 голос
/ 26 июля 2016

Используйте это [проверено]

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 голосов
/ 26 октября 2016
SELECT column1 FROM table WHERE column1 not like '%[0-9]%'

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...