WHERE句で正規表現を使うときOracleではREGEXP_LIKE関数を使うが
RedShift(PostgreSQLベース)ではREGEXP_LIKE関数が使えない。そんな時は POSIX様式の正規表現 を使えば良い。
⇒参考:PostgreSQLパターンマッチ - postgresql.jp
1 2 3 4 5 6 7 8 |
//5桁の数字に一致 WHERE column_name ~ '[0-9]{5,}' //5桁から10桁の数字に一致 WHERE column_name ~ '[0-9]{5,10}' //先頭が数字から始まる WHERE column_name ~ '^[0-9].*' |
※REGEXP_LIKEの代わりに~(チルダ)を使ってその後に正規表現を書けばよい。
ちなみにPOSIXとはUNIXのことなんですが正式には以下とのこと。
- POSIXとは -
米国の電気電子学会(Institute of Electrical and Electronic Engineers)と、UNIX関連業界団体「The Open Group」が定めたUNIX系OSの互換性維持のための標準仕様。POSIXの規定範囲は、アプリケーションがOS機能を呼び出すための「システムコール」や標準のライブラリ関数、ファイルやディレクトリ階層、ユーザー情報の管理方法、標準コマンドやそれらが使用するデータフォーマットなど多岐にわたる。
出典:weblio.jp