web-dev-qa-db-ja.com

数値のみを選択する方法

表1

id

01
wire
02
steve
ram123
03
....

table1から数値のみを選択したい、(ram123)のような英数字の値を表示しないでください

期待される出力

01
02
03
....

この条件のクエリを作成する方法

12
JetJack

試してくださいISNUMERIC

SELECT *
FROM Table1
WHERE ISNUMERIC([ID]) = 1

SQLFiddle Demo

21
John Woo
SELECT * FROM @Table 
WHERE Col NOT LIKE '%[^0-9]%' 
4
highwingers

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
1
Void Ray
 SELECT column1 FROM table where ISNUMERIC(column1) = 1
0
Raj Adroit