答えて
文字クラスにSQLでパターンマッチングするLIKE演算子を使用すると、regexにあるような文字クラスのワイルドカードリピートはありません。つまり、[0-9]+
または[0-9]{1,3}
のようなことはできません(これらの両方とも、0
をキャプチャします)。
したがって、数値を比較する前にゼロパッドする必要があります。
それは直接パターンではないのですが、この表現は、LIKE演算子に部分的に依存しており、1〜999の正の整数のために動作します:
RIGHT('00' + myfield, 3) LIKE '[0-9][0-9][0-9]'
AND RIGHT('00' + myfield, 3) <> '000'
AND LEN(myfield) <= 3
編集:仮定は、あなたがしていると判断あなたが指定しなかったので、Microsoft SQL Serverについて話しています。
どのDBMSで[0-9] [0-9] [0-9] 'が好きですか?それは確かに標準SQL 'LIKE'ワイルドカード(標準SQLのみ'% 'と' _'ワイルドカード、いいえ「の範囲を」理解) –
すべてではないが、いくつかは、大幅に正規表現をサポートしていないが、ではありません。 MySQLでは、 'WHERE num REGEXP '^ [1-9] [0-9] {1,2} $' – Hameed
@Hameedと書くことができます:私はそれを理解していますが、あなたの例は' LIKE'演算子を使用していません。 –
SELECT * FROM table WHERE field BETWEEN 1 AND 999;
EDIT:これが唯一のPostgreSQLで動作します。あなたは、文字列にマッチする正規表現パターンを探しているなら
、このような何か:
SELECT * FROM table WHERE field ~ '[1-9][0-9]{1,2}';
はregexp patterns上のドキュメントを参照してください。
SQL Serverは正規表現をそのまま使用しません。です。
次のworkaroundまたはこの質問を使用することができます:Regular Expressions in SQL Server servers?。
- 1. 文字列間のすべての(+)記号に一致する
- 2. プリプレグ一致エキス数字パターン
- 3. 時間パターンに一致するディレクトリ内のすべてのファイルを削除
- 4. パターンは2つのパターンセットの間のすべてのテキストに一致します
- 5. 文字列パターンに一致するすべてのサービス名を表示
- 6. regex - パターンに一致しないすべての文字列を見つける
- 7. 開始パターンと開始パターンの間のすべてに一致する正規表現
- 8. 複数のパターンに一致する複数の部分文字列を返す
- 9. パターン一致のlua変数
- 10. PHPのCAS番号のパターンに一致するすべての文字列値を抽出しています
- 11. 与えられたパターンの後のシンボル間のパターンの一致
- 12. 一致するJavaパターン。スキップしている間に&
- 13. 文字列内の複数のパターン一致の数をカウントする
- 14. パターンに一致する文字列の数を取得する正規表現
- 15. 複数のパターンと文字列を一致させる
- 16. パターンに一致するサブストリングのすべての出現を見つけよう
- 17. sed:パターンの右側に一致する行のすべてを小文字にします。
- 18. パターンに一致するすべてのExcel描画レイヤシェイプを削除する
- 19. javascriptで特定のパターンのすべてのリンクに一致させる
- 20. 文字列の先頭と末尾に一致するJavaパターン?
- 21. フォーマット特定のパターンに一致する文字列
- 22. 特定の文字列パターンに一致する正規表現
- 23. 文字の前に一致するパターンがありません
- 24. Postgres:GROUP BYの後に一致するパターン
- 25. Pythonのパターンに一致する単語
- 26. 特定のパターンに一致するmod_rewrite
- 27. 特定のパターンに一致した後に数字の間にスペースを挿入してください
- 28. Python Regexは、小数点以下のパターンとそれに続く別のパターンの一致に一致します。
- 29. パターンの正規表現に一致するすべての1文字を置き換えます。
- 30. JS:パターンに一致するオブジェクトのすべての文字列値を置き換えますか?
パターンやワイルドカード検索に関して、すべてのDBMが同じ標準に準拠するわけではありません。あなたは具体的にする必要があります。当初あなたの質問には正しいタグがなかった。 – Hameed