Teradataでは、いくつかの数字のパターンを見つけて、次に空白を入れたり、スペースを入れずに「SF」を探す正規表現パターンを探しています。これは、以下の両方のケースでは7を返す必要があります:Teradataの正規表現、0または1のスペース
はSELECT
REGEXP_INSTR('12345 1000SF', pattern),
REGEXP_INSTR('12345 1000 SF', pattern)
それとも、私の実際の目標は、おそらくREGEXP_SUBSTRを使用して、簡単な方法があるかどうどちらの場合も、1000年を抽出することです。必要な場合は、さらに詳しい情報が下記にあります。
私はフリーテキストを含むコラムを持っており、私は平方の映像を抽出したいと思います。しかし、いくつかのケースでは、番号と「SF」の間にスペースがあり、いくつかのケースではありません。
'other stuff 1000 SF'
'other stuff 1000SF'
私は開始位置を見つけるために、REGEXP_INSTR関数を使用しようとしています。グーグルを通して、私は最初は
'([0-9])+ SF'
私は2番目のためのパターンを試してみることをするときのために、私は
'([0-9])+SF'
を試してみて、私は
SELECT Failed. [2662] SUBSTR: string subscript out of bounds
エラーを取得するパターンを発見しました私も同様の質問にanswerが見つかりましたが、Teradataではうまくいきません。たとえば、私はあなたが使用できるとは思わない? Teradataでこのような
'[0-9] + SF 'を試してください。キャラクタクラスをグループに入れ、キャラクタクラスアトムの代わりにグループを数量化するという点はありません。 –
@WiktorStribiżew()を含めると同じエラーが表示されます。エラーの原因となっていることがあります。 – Graphth
'? 'を使うことができないなら、' [0-9] + SF | [0-9] + SF'のようなパターンでパターンをマッチさせるだけです。 – CAustin