1

この行は test_data テーブルの c1 文字列をチェックするだけで、数字がない場合は c1 文字列全体が result1 列に表示されます。この部分を自分でテストしてみましたが、うまくいかないようです。

誰でも助けることができますか?テーブルと列はすべて作成されましたが、必要な結果が得られませんでした。結果はランダムのようです: 数字を含む文字列が挿入されるものと挿入されないものがあります。

SELECT case WHEN REGEXP_Instr(c1, '[:digit:]')=0 
            THEN c1
      end result1
FROM test_data;
4

1 に答える 1

6

[[:digit:]]POSIX文字クラスの代わりに使用すると、[:digit:] 角かっこ内でのみ機能します。

SELECT
    case WHEN REGEXP_Instr(c1, '[[:digit:]]')=0 THEN c1 end result1
    ,c1
FROM
(
    select 'asdf' c1 from dual union all
    select '1234' c1 from dual union all
    select 'as1234df' c1 from dual
) test_data;
于 2012-04-22T17:01:07.580 に答える