ヘッダーをスキップ
Oracle TimesTen In-Memory Database SQLリファレンス・ガイド
リリース7.0
E05176-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

LIKE条件

LIKE条件は、指定したパターンがCHAR、VARCHAR2、NCHARまたはNVARCHAR2式に含まれているかどうかを判断します。式にパターンが含まれている場合、条件はTRUEと評価されます。

SQL構文

Expression [NOT] LIKE

 {'PatternString'| {? | :DynamicParameter}}

[ESCAPE {'EscapeChar' | {? | :DynamicParameter}}]

パラメータ

パラメータ
説明
Expression
式の構文については、「式」を参照してください。
PatternString
式から検索する文字列を指定します。パターンは文字(数字と特殊文字を含む)のみです。たとえば、NAME LIKE 'Annie'は、空白を含まないAnnieという名前にかぎりTRUEと評価されます。大文字と小文字の区別は重要です。
条件のパターンに次の記号を使用して、部分一致をテストする条件を使用することもできます。
_  : 単一の文字を表します。

たとえば、BOBTOMは、ともに条件NAME LIKE '_O_'を満たします。

% : 0(ゼロ)文字以上の文字列を表します。

たとえば、MARIERENATEは、ともに条件NAME LIKE '%A%'を満たします。

_と%記号は、パターンの中で自由に組み合せて繰り返し使用できます。なお、これらの記号をパターン内のリテラルとして使用するには、ESCAPE句を使用し、EscapeCharパラメータで定義したエスケープ文字を、それらの記号の前に指定する必要があります。
EscapeChar
パターン内の_と%記号をリテラルとして解釈させる場合に使用できる、オプションのエスケープ文字を定義します。
エスケープ文字は単一の文字である必要があります。エスケープ文字をパターンに使用する場合は、その後に続けてエスケープ文字自体、_記号または%記号と指定する必要があります。そのようなペアによって、パターンの2番目文字の単一リテラルの出現が表現されます。エスケープ文字では、大文字と小文字は常に区別されます。_または%をエスケープ文字として使用することはできません。
?
:DynamicParameter
準備されたSQL文の動的パラメータです。パラメータの値は、文の実行時に設定されます。

説明

例4.24

先頭がAで始まる地域のベンダーを特定します。

SELECT VendorName FROM Purchasing.Vendors

WHERE VendorState LIKE 'A%';

名前がACME_で始まるベンダー名(ESCAPE句の使用に注意)を特定します。

SELECT VendorName FROM Purchasing.Vendors

WHERE VendorName LIKE 'ACME!_%' ESCAPE '!';

NCHARとNVARCHAR2

LIKE条件は、NCHARとNVARCHAR2文字列のパターン一致に使用できます。パターン一致文字は、次のとおりです。

文字
説明
U+005F SPACING UNDERSCORE
単一のUnicode文字を表します。
U+0025 PERCENT SIGN
0(ゼロ)文字以上のUnicode文字列を表します。

説明

これらの例では、Unicode文字U+0021 EXCLAMATION MARKは、Unicode文字U+005F SPACING UNDERSCOREのエスケープとして使用されています。Unicode文字U+0025 PERCENT SIGNはエスケープされず、パターン一致としてみなされます。

VendorNameは、NCHARまたはNVARCHAR2の列です。

例4.25

SELECT VendorName FROM Purchasing.Vendors

WHERE VendorName LIKE N'ACME!_%' ESCAPE N'!';

これは、次と同じです。

SELECT VendorName FROM Purchasing.Vendors

WHERE VendorName LIKE N'ACME!\u005F\u0025' ESCAPE N'!';