答えて
文字クラスに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. パターン一致のlua変数
- 4. 与えられたパターンの後のシンボル間のパターンの一致
- 5. 複数のパターンと文字列を一致させる
- 6. パターンに一致するすべてのExcel描画レイヤシェイプを削除する
- 7. 特定のパターンに一致するmod_rewrite
- 8. XMLの文字列パターンと一致するノードをカウントする
- 9. grepと一致するファイルのパターンを調べる方法は?
- 10. すべての英数字ハッシュタグに一致する正規表現
- 11. 正規表現が一致するすべてのパターンをリストする
- 12. Ruby Regex:パターンの後に複数の一致を返します。
- 13. F#バージョンのhaskellパターンが一致する
- 14. URL Firefoxのアドオンで一致するパターン
- 15. 数字のすべてをカンマ区切りの数字のリストに一致させます
- 16. scalaパターン一致
- 17. 文字列不明パターン一致
- 18. 同一の要素のリストに一致するパターン
- 19. FTPのシェルスクリプトによるパターン一致
- 20. SQL Server - 文字列に一致するパターン
- 21. 正規表現文字列に一致するパターン
- 22. 文字列に一致するパターンSeq [Char]
- 23. Isapi Rewrite - RewriteRuleでクエリ文字列パターンに一致する
- 24. パターン一致の同じ値
- 25. pythonパターンの一致番号
- 26. パターン一致 "return"の値
- 27. MYSQL強制パターンの一致
- 28. Javaparser ASTパターンの一致
- 29. if文とのパターン一致
- 30. Pregすべての文字を一致させる
パターンやワイルドカード検索に関して、すべてのDBMが同じ標準に準拠するわけではありません。あなたは具体的にする必要があります。当初あなたの質問には正しいタグがなかった。 – Hameed