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

Как выбрать только числовые значения

Таблица1

ID

01
wire
02
steve
ram123
03
....

из таблицы1 я хочу выбрать только числовые значения, Он не должен отображать буквенно-цифровые значения, такие как (ram123)

Ожидаемый результат

01
02
03
....

Как сделать запрос для этого условия

4b9b3361

Ответ 2

SELECT * FROM @Table 
WHERE Col NOT LIKE '%[^0-9]%' 

Ответ 3

Просто хочу отметить, что IsNumeric() имеет некоторые ограничения. Например, все приведенное ниже вернет 1.

SELECT ISNUMERIC(' - ')
SELECT ISNUMERIC(' , ')
SELECT ISNUMERIC('$')
SELECT ISNUMERIC('10.5e-1')
SELECT ISNUMERIC('$12.09')

Итак, если вы только хотите выбрать числа ТОЛЬКО, то что-то вроде этого может работать:

create function [dbo].[IsNumbersOnly](@strSrc as varchar(255))
returns tinyint
as
begin

    return isnumeric(replace(replace(replace(replace(replace(replace(replace(replace(replace(replace(
        @strSrc, '\', 'x'), '-', 'x'), ',', 'x'), '+', 'x'), '$', 'x'), '.', 'x'), 'e', 'x'), 'E', 'x'),
        char(9), 'x'), char(0), 'x'))
end

Ответ 4

 SELECT column1 FROM table where ISNUMERIC(column1) = 1

Ответ 5

Вы можете использовать функцию перевода и замены вместе. сначала перевести числа в 0, а затем заменить их нулевым и вернуть только нулевые значения могут решить проблему.

select column from table where  replace(translate(column,'0123456789','0000000000'),'0','') is null