パターンと文字列を一致させます。
expression [ NOT ] SIMILAR TO pattern [ ESCAPE escape-expression ]
expression 検索される式。
pattern expression を検索するための正規表現。
サポートされている正規表現の構文の詳細については、正規表現の概要を参照してください。
escape-expression 一致で使用するエスケープ文字。デフォルトのエスケープ文字は NULL 文字で、文字列リテラル内では '\x00' のように指定します。
正規表現の構文 | 意味 |
---|---|
\x | x と同じものに一致します。ここでは、エスケープ文字は円記号 (\) と見なされます。たとえば、\[ は '[' に一致します。
|
x | 任意の文字 (メタ文字以外) がそれ自体に一致します。たとえば、A は 'A' に一致します。
|
部分文字列と文字列を一致させるには、パーセント記号のワイルドカードを使用します (%expression)。たとえば、SELECT ... WHERE Description SIMILAR TO 'car'
は car にのみ一致し、sportscar には一致しません。一方、SELECT ... WHERE Description SIMILAR TO '%car'
は、car や sportscar など、car で終わるすべての文字列に一致します。
部分文字クラスのみに一致させる場合は、外側の角カッコと、部分文字クラス用の角カッコを使用する必要があります。たとえば、expression SIMILAR TO '[[:digit:]]' のように指定します。部分文字クラスの一致の詳細については、正規表現:特殊部分文字クラスを参照してください。
文字列単位で比較する等価演算子 (=) やその他の演算子とは異なり、比較が文字単位で実行されます。たとえば、UCA 照合 (照合が UCA に設定された CHAR または NCHAR) で比較が行われる場合、'A'='AE'
は true ですが、'A' SIMILAR TO 'AE'
は false です。
文字単位で比較して一致するには、検索される式に含まれる各文字が、SIMILAR TO パターンに含まれる 1 文字またはワイルドカード文字に一致する必要があります。
SIMILAR TO では、文字が等価かどうかの判断や文字クラス範囲の評価に、照合が使用されます。たとえば、データベースで大文字と小文字やアクセント記号が区別されない場合、一致でも大文字と小文字やアクセント記号が区別されません。範囲も、照合のソート順を使用して評価されます。
LIKE、SIMILAR TO、REGEXP における一致や評価範囲の動作の比較については、LIKE 探索条件、REGEXP 探索条件、SIMILAR TO 探索条件を参照してください。
SIMILAR TO 探索条件は、CHAR と NCHAR の文字列の比較に使用できます。この場合、共通データ型を使用して比較が行われるように、文字セット変換が実行されます。次に、文字単位の比較が実行されます。CHAR と NCHAR の比較を参照してください。
引用符で囲んだ値の前に N を付けることによって (たとえば、expression SIMILAR TO N'pattern'
)、expression または pattern を NCHAR 文字列リテラルとして指定できます。また、CAST 関数を使用して、CHAR または NCHAR にパターンをキャストすることもできます (たとえば、expression SIMILAR TO CAST(pattern AS datatype)
)。
文字列リテラルとCAST 関数 [データ型変換]を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |