検索値を入力するときの規則
このトピックでは、検索条件に対して次の種類のリテラル値を入力するときに従う規則について説明します。
文字列値
数値
日付
論理値
[!メモ]
このトピックの情報は標準の SQL-92 に対する規則に基づいていますが、各データベースは SQL を独自の方法で実装している場合があります。したがって、ここに示すガイドラインはすべての場合に当てはまるわけではありません。特定のデータベースでの検索値の入力方法に関して不明な点がある場合は、使用しているデータベースのドキュメントを参照してください。
文字列値の検索
次の規則は、検索条件に文字列値を入力するときに適用されます。
引用符 次に示す姓の例のように、文字列値は単一引用符で囲みます。
'Smith'
抽出条件ペインで検索条件を入力する場合は、単に文字列値を入力するだけです。クエリおよびビュー デザイナーが自動的に単一引用符を付加します。
[!メモ]
一部のデータベースでは、単一引用符で囲まれた項目がリテラル値として解釈され、二重引用符で囲まれた項目が列やテーブル参照などのデータベース オブジェクトとして解釈されます。このため、クエリおよびビュー デザイナーでは二重引用符で囲まれた項目も受け入れることができますが、その項目が期待どおりに解釈されるとは限りません。
アポストロフィの埋め込み 検索するデータに単一引用符 (アポストロフィ) が含まれる場合は、その単一引用符が区切り記号でなくリテラル値であることを示すために、2 つの単一引用符を入力します。たとえば、次の条件は "Swann's Way" という値を検索します。
='Swann''s Way'
長さの制限 長い文字列を入力するときには、データベースにおける SQL ステートメントの最大長を超えないようにします。
大文字小文字の区別 使用しているデータベースの大文字小文字の区別の規則に従います。使用しているデータベースによって、文字列の検索で大文字小文字が区別されるかどうかが異なります。たとえば、あるデータベースでは演算子 "=" は厳密に大文字小文字を区別した一致を意味しますが、別のデータベースでは大文字と小文字の任意の組み合わせの一致が許されます。
データベースで大文字小文字が区別して検索されるかどうかがわからない場合は、次の例に示すように、検索条件で UPPER または LOWER 関数を使用して検索データを大文字または小文字に変換してください。
WHERE UPPER(lname) = 'SMITH'
大文字および小文字に変換する関数の詳細については、「式の関数」を参照してください。
数値の検索
次の規則は、検索条件に数値を入力するときに適用されます。
引用符 引用符で数値を囲むことはできません。
数値以外の文字 小数点記号 (Windows コントロール パネルの [地域のオプション] ダイアログ ボックスで定義) と負の符号 (-) を除き、非数値文字を入力することはできません。桁区切り記号 (3 桁ごとに挿入されるコンマなど) や通貨記号を入力することはできません。
小数点 数を入力するときは、検索する値が整数か実数かに関係なく、小数点を含めることができます。
指数表記 非常に大きな数や非常に小さな数は、次の例のように指数表記で入力できます。
> 1.23456e-9
日付の検索
日付を入力するときに使用する形式は、使用しているデータベースによって異なります。また、クエリおよびビュー デザイナーのどのペインに日付を入力するかによっても異なります。
[!メモ]
データ ソースが使用している形式が不明な場合は、抽出条件ペインのフィルター列に任意の形式で日付を入力してください。クエリおよびビュー デザイナーは、このような入力のほとんどを適切な形式に変換します。
クエリおよびビュー デザイナーは、次の日付形式を処理できます。
ロケール固有 Windows の [地域のオプション] ダイアログ ボックスで指定された日付の形式。
データベース固有 データベースによって認識される任意の形式。
ANSI 標準日付 次の例のように、中かっこ ({})、日付を指定するマーカー 'd'、および日付の文字列を使用する形式。
{ d '1990-12-31' }
ANSI 標準日付/時刻 (datetime) ANSI 標準日付に似ていますが、'd' の代わりに 'ts' を使用し、日付に時、分、秒 (24 時間制) を付加します。1990 年 12 月 31 日の例を次に示します。
{ ts '1990-12-31 00:00:00' }
一般に、通常の日付型を使用して日付を表現するデータベースでは、ANSI 標準の日付形式が使用されます。一方、datetime データ型をサポートするデータベースでは、datetime 形式が使用されます。
次の表は、クエリおよびビュー デザイナーの各ペインで使用できる日付形式を示しています。
Pane |
日付形式 |
---|---|
[抽出条件] |
ロケール固有 データベース固有 ANSI 標準 抽出条件ペインで入力された日付は、SQL ペインではデータベース互換の形式に変換されます。 |
SQL |
データベース固有 ANSI 標準 |
[結果] |
ロケール固有 |
論理値の検索
論理データの形式はデータベースごとに異なります。多くのデータベースで、False の値はゼロ (0) として格納されます。多くのデータベースでは、True の値は 1 として格納されます。True の値を -1 として格納するデータベースもあります。検索条件に論理値を入力するときには、次のガイドラインが適用されます。
False の値を検索する場合は、次の例のようにゼロを使用します。
SELECT * FROM authors WHERE contract = 0
True の値を検索するときにどの形式を使用するかわからない場合は、次の例のように 1 を使用します。
SELECT * FROM authors WHERE contract = 1
または、次の例のように、ゼロでない任意の値を検索することで、検索のスコープを広くすることもできます。
SELECT * FROM authors WHERE contract <> 0