15

表1

ID

01
wire
02
steve
ram123
03
....

table1 から数値のみを選択したい (ram123) のような英数字の値は表示しない

期待される出力

01
02
03
....

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

4

6 に答える 6

27

試すISNUMERIC

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

SQLFiddle デモ

于 2012-09-30T06:19:43.497 に答える
6
SELECT * FROM @Table 
WHERE Col NOT LIKE '%[^0-9]%' 
于 2012-09-30T21:04:16.287 に答える
1

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
于 2012-09-30T07:01:12.037 に答える
0
 SELECT column1 FROM table where ISNUMERIC(column1) = 1
于 2012-09-30T06:23:19.843 に答える