5

私の知る限り、次のようなことができます:

"SELECT * 
 FROM my_table 
 WHERE my_field LIKE '0%' 
 OR my_field LIKE '1%' 
 OR my_field LIKE '2%' ";

正規表現または次のようなものでこれを達成する方法はありますか:

"SELECT * 
 FROM my_table 
 WHERE my_field LIKE [only first char is 0-9]"??

編集: フィールドは数値ではなく、「1 人」、「211 パイ」などのようになります。

4

5 に答える 5

7

これを試して

SELECT * 
FROM BadlyDesignedTable 
WHERE AnswerColumn RLIKE '^[0-9]+'

どこで正規表現することさえ可能かどうか疑問に思っていました.30秒でGoogleで見つけました。

于 2013-03-15T20:56:28.270 に答える
2
SELECT * FROM table WHERE field REGEXP '^[0-9]' 
于 2013-03-15T20:59:24.760 に答える
1
Select * From my_table Where (REGEXP_LIKE(my_field, '[[:digit:]]%'))

(REGEXP_LIKE(Source_String, '[[:character class:]]'))、あなたが抱えている問題など、さまざまな問題に使用できる機能です。これを使用して、最初の桁でそれを行うように指示するだけです。

http://docs.oracle.com/cd/B14117_01/server.101/b10759/conditions018.htm

編集: Select * From my_table Where (SUBSTR(my_field,1,1) = '[[:digit:]]') 私の同様のクエリでこれを試してみたところ、うまくいきました。

于 2013-03-15T20:59:26.563 に答える
0

正規表現を使用しない単純なもの:

SELECT *, SUBSTR(my_field, 1, 1) AS mf FROM my_table HAVING mf BETWEEN '0' AND '9';

between 句の引用符は重要です。

于 2013-03-15T21:27:06.327 に答える
0
SELECT *
FROM my_table
WHERE left(my_field,1) REGEXP '^[0-9]+';

MSSQLがある場合は、使用できます

SELECT *
FROM my_table
WHERE isNumeric(left(my_field,1)) = 1
于 2013-03-15T20:54:49.757 に答える