Как получить только числовые значения столбца?
Использование SQL Server 2005
Я хочу получить только числовые значения из таблицы
Столбец1
12345
asdf
2312
ase
acd
...,
Пробный запрос
Select Isnumeric(column1) from table
Отображение результата как
1
0
1
0
0
..,
Мне нужно числовое значение colum1
Необходимость помощи SQL Server
Ответы
Ответ 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, и когда я включил ^, он исключил все мои не-численные значения, которых я точно не хотел. Итак, удалив ^, я получил только нечисловые значения.