次の方法で共有


ワイルドカード文字

ワイルドカード文字を使用して、データ列または式の中のパターンを検索できます。 たとえば、姓が "Van" で始まるか "son" で終わる従業員をすべて検索できます。

ワイルドカード文字

ワイルドカード文字を使用して、文字列として扱うことのできる列を検索できます。 データ型が character 型である列は、常に文字列として扱うことができます。一部のデータベースでは、datetime 型のデータを含む列も文字列として扱うことができます。

パターンを検索するには、LIKE 演算子を使用し、検索文字列の中の 1 個以上の文字をワイルドカード文字で置き換えます。 次のいずれかのワイルドカード文字を使用できます。

ワイルドカード文字

説明

% (パーセント記号)

0 個以上の文字がその位置に入る。

_ (アンダースコア)

1 個の文字がその位置に入る。

たとえば、"Van" で始まる名前をすべて検索する場合は、LIKE 'Van%' という検索条件を指定できます。 "Jan"、"Jen"、"Jon" などの名前を検索する場合は、LIKE 'J_n' という検索条件を指定できます。

ワイルドカード文字として使用される文字の検索

検索する文字列に、ワイルドカード文字として使用される文字が含まれている場合もあります。 たとえば、titles テーブルで、タイトルに "10%" を含む出版物をすべて検索するような場合です。 検索する文字列に "%" が含まれているため、この文字がリテラル文字列でありワイルドカード文字ではないことを示す必要があります。

ワイルドカード文字として解釈される文字を検索する場合は、エスケープ文字を指定できます。 リテラルとして指定する文字 "%" または "_" の直前にエスケープ文字を入力します。 エスケープ文字を指定するには、LIKE 検索条件の直後に ESCAPE 句を指定します。 これは、条件ペインの [抽出条件] 列、または SQL ペインで指定できます。

たとえば、文字列 "10%" を含むタイトルをすべて検索する場合を考えます。 文字 "#" をエスケープ文字として定義することにより、リテラルとして指定する文字 "%" の前に "#" を入力できるようにします。 これは抽出条件ペインで次のように指定できます。

LIKE '%10#%%' ESCAPE '#'

この結果、SQL ステートメントの WHERE 句は次のようになります。

WHERE title LIKE '%10#%%' ESCAPE '#'

注意

エスケープ文字を定義できるのは SQL ペインだけです。

datetime 列の検索

datetime データ型の列に対して作業する場合は、日付または時刻の任意の部分を検索できます。これには、月名の短縮形や年号の完全な形も含まれます。

注意

datetime 列を検索する機能は、使用しているデータベースの種類、および datetime データ型を文字列として検索できるかどうかによって異なります。 詳細については、データベースのドキュメントを参照してください。

たとえば、Microsoft SQL Server データベースでは、次の LIKE 句を使用して、日付が 1994 年に含まれる行をすべて検索できます。

LIKE '%1994%'

次の例では、年に関係なく日付が 1 月に含まれる列をすべて検索します。

LIKE 'Jan%'

datetime 列を検索するために使用できる文字列の正確な形式は、使用しているデータベースによって異なります。

注意

データベースのあるコンピューターとクエリを実行するコンピューターの地域設定が異なる場合は、予測しない結果が得られる場合があります。 これを防止するには、データベースのあるコンピューターの日付形式を指定する式を使用します。 詳細については、データベース管理システムのマニュアルを参照してください。

ワイルドカード検索の例

ワイルドカード文字の使用例を次に示します。

検索式

説明

一致する文字列の例

LIKE 'Van%'

"Van" で始まる値を検索します。

Vann、Van Beeck、Vanderhorn

LIKE 'J%n'

"J" で始まり "n" で終わる値を検索します。

Jon、Johnson、Jason、Juan

LIKE '%son'

"son" で終わる値を検索します。

Son、Anderson

LIKE '%sam%'

文字列に "sam" を含む値を検索します。

Sam、Samson、Grossam

LIKE '%Mar%'

datetime 列で年に関係なく 3 月に含まれる値を検索します。

3/1/94 01 Mar 1992

LIKE '%1994%'

datetime 列で 1994 年の値を検索します。

12/1/94 01 Jan 1994

LIKE 'Mac_'

"Mac" で始まる 4 文字の値を検索します。

Mack、Macs

LIKE '_dam'

"dam" で終わる 4 文字の値を検索します。

Adam、Odam

LIKE '%s_n'

"s" と "n" の間に任意の 1 文字を含む文字列が末尾であり、その前に任意の数の文字が含まれる値を検索します。

Anderson、Andersen、Johnson、san、sun

参照

その他の技術情報

クエリおよびビューのデザイン

リファレンス (Visual Database Tools)