1

自動インクリメントされる「id」と「someValue」の2つの列を持つ「testTable」というテーブルがあります。

「someValue」列に含まれるデータは次のとおりです。12, 1.2, .4, 1d4, +, -, .

数値のみを選択したい。しかし、次のクエリを使用すると:

SELECT someValue, ISNUMERIC(someValue) 
FROM testTable;

すべての値が true です。クエリの場合:

SELECT * FROM testTable 
WHERE ISNUMERIC(someValue) = 1;

すべての値が返されています。

とが欲しいだけ12です。1.2.4

どうすればこれを達成できますか?

アップデート:

列のデータ型someValueは ですvarchar(50)

4

1 に答える 1

5

設定:

CREATE TABLE SomeTable
(
  ID INT,
  Value NVARCHAR(250)
)


INSERT INTO SomeTable (ID, Value) VALUES (1, '12')
INSERT INTO SomeTable (ID, Value) VALUES (2, '1.2')
INSERT INTO SomeTable (ID, Value) VALUES (3, '.4')
INSERT INTO SomeTable (ID, Value) VALUES (4, '1d4')
INSERT INTO SomeTable (ID, Value) VALUES (5, '+')
INSERT INTO SomeTable (ID, Value) VALUES (6, '-')
INSERT INTO SomeTable (ID, Value) VALUES (7, '.')

クエリ:

SELECT * FROM SomeTable WHERE ISNUMERIC(Value+'d0')=1

結果:

ID  VALUE
1   12
2   1.2
3   .4
于 2013-01-28T16:14:42.780 に答える