0

アロハ

結果をフィルタリングする必要があります。私は「好きではない」という制約を付けました。でも、もっと効率よくしたい。

これが私が試したことです:「好きではない」スタイルで

`

  AND S.COLUMN_NAME NOT LIKE ('%_S')
  AND S.COLUMN_NAME NOT LIKE ('%_T')
  AND S.COLUMN_NAME NOT LIKE ('%_X')
  AND S.COLUMN_NAME NOT LIKE ('%_Y')
  AND S.COLUMN_NAME NOT LIKE ('%_L')
  AND S.COLUMN_NAME NOT LIKE ('%_SG')
  AND S.COLUMN_NAME NOT LIKE ('%_ST')
  AND S.COLUMN_NAME NOT LIKE ('%_X1')
  AND S.COLUMN_NAME NOT LIKE ('%_Y1')
  AND S.COLUMN_NAME NOT LIKE ('%_X2')
  AND S.COLUMN_NAME NOT LIKE ('%_Y2')
  AND S.COLUMN_NAME NOT LIKE ('%_O')`

そして正規表現で:

  REGEXP_LIKE (COLUMN_NAME, '[^\_O|Y]*')

regexp_like 句が期待どおりに機能しません。しかし、私はそれを書く方法がわかりません。_O、_Y、_X、... で終わるものを除くすべての結果が必要です。

4

2 に答える 2

0

次のようなものを試してください:

NOT REGEXP_LIKE (COLUMN_NAME, '_([STXYLO]|S[GT]|[XY][12])$')
于 2012-05-29T12:19:49.193 に答える
0

私は正規表現のオラクル風味に慣れていませんが、彼らのドキュメントを簡単に見てから、次のようなものがうまくいくと思います:

.*?_(O|Y|Z)$

また

.*?_[OYZ]$

それは言います:

  • .*?- 後に続くものすべてに一致 (貪欲でない一致)
  • _- アンダースコア リテラル、その後に続く
  • (O|Y|Z)- O または Y または Z (これはキャプチャ グループです。標準の正規表現では代わりに (?:) を使用しますが、サポートされていない可能性があります)
  • $- 文字列の最後に

[OYZ]別の方法は、これらの文字のいずれかを意味する文字クラスを使用することです。

于 2012-05-29T12:18:50.683 に答える