9

文字列に数値が含まれているかどうかを確認する必要があります。いずれかの番号。文字列が数値であるかどうかではなく、数値が含まれている場合。

例:

「テスト」=番号なし。

'test2' = 数値が含まれます。

4

4 に答える 4

24

正規表現の使用:

SELECT *
FROM test
WHERE REGEXP_LIKE(testcol, '[[:digit:]]');

正規表現を使用しない:

SELECT *
FROM test
WHERE testcol LIKE '%0%'
    OR testcol LIKE '%1%'
    OR testcol LIKE '%2%'
    OR testcol LIKE '%3%'
    OR testcol LIKE '%4%'
    OR testcol LIKE '%5%'
    OR testcol LIKE '%6%'
    OR testcol LIKE '%7%'
    OR testcol LIKE '%8%'
    OR testcol LIKE '%9%'
于 2012-07-05T09:34:30.083 に答える
4

これは、文字列に数字が含まれているかどうかを検出するために使用する手法です。

select LAST_NAME, 'contains a number'
  FROM names
 where translate(LAST_NAME, '0123456789', '') <> LAST_NAME

これは、数字を空の文字列に変換することで機能します。文字列が同じままである場合は、数字が含まれていない可能性があります。

この手法は、文字列がすべて数字であるかどうかをテストするためにも機能します

select TEL_NUMBER, 'is all numbers'
  FROM names
 where trim(translate(TEL_NUMBER, '-0123456789', '')) = ''

電話番号には通常ダッシュが含まれているため、電話番号にはダッシュを含めました。

于 2013-08-25T01:10:39.657 に答える
0

正規表現を使用してみます。お気に入り:

select regexp_instr('%[0-9]%',@str1) from table_name;

乾杯 - ジョッケ

于 2012-07-05T09:34:05.203 に答える