1から999までのすべての数字に一致する SQL パターン式が必要です。
編集:
MSSQL で。
1から999までのすべての数字に一致する SQL パターン式が必要です。
編集:
MSSQL で。
文字クラスに対して SQL で LIKE 演算子のパターン マッチングを使用する場合、正規表現にあるような文字クラスのワイルドカードの繰り返しはありません。[0-9]+
つまり、 orのようなことはできません[0-9]{1,3}
(これらはどちらも をキャプチャし0
ます) 。
したがって、比較する前に数値をゼロで埋める必要があります。
これは直接patternではありませんが、この式は 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について話していると仮定しました。
SELECT * FROM table WHERE field BETWEEN 1 AND 999;
編集: これは PostgreSQL でのみ機能します。
文字列に一致する正規表現パターンを探している場合は、次のようになります。
SELECT * FROM table WHERE field ~ '[1-9][0-9]{1,2}';
正規表現パターンに関するドキュメントを確認してください。
SQL Server は正規表現をそのままサポートしていません。
次の回避策またはこの質問を使用できます: SQL Server サーバーの正規表現? .