表1
id
01
wire
02
steve
ram123
03
....
table1から数値のみを選択したい、(ram123)のような英数字の値を表示しないでください
期待される出力
01
02
03
....
この条件のクエリを作成する方法
SELECT * FROM @Table
WHERE Col NOT LIKE '%[^0-9]%'
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
SELECT column1 FROM table where ISNUMERIC(column1) = 1