次の方法で共有


検索値を入力するための規則 (Visual Database Tools)

適用対象:SQL Server

この記事では、検索条件に次の種類のリテラル値を入力するときに使用する必要がある規則について説明します。

  • テキスト値
  • 数値
  • 日付
  • 論理値

この記事の情報は、標準 SQL-92 の規則から派生しています。 各データベースは SQL を独自の方法で実装している場合があります。 したがって、ここに示すガイドラインはすべての場合に当てはまるわけではありません。 特定のデータベースの検索値を入力する方法に関する質問がある場合は、使用しているデータベースのドキュメントを参照してください。

テキスト値を検索する

次の規則は、検索条件に文字列値を入力するときに適用されます。

  • 引用符 : 次に示す姓の例のように、文字列値は単一引用符で囲みます。

    'Smith'
    

    抽出条件ペイン (Visual Database Tools) で検索条件を入力する場合は、テキスト値を入力するだけで、クエリおよびビュー デザイナーによって自動的に単一引用符が囲まれます。

    一部のデータベースでは、単一引用符で囲まれた項目がリテラル値として解釈され、二重引用符で囲まれた項目が列やテーブル参照などのデータベース オブジェクトとして解釈されます。 このため、クエリおよびビュー デザイナーでは二重引用符で囲まれた項目も受け入れることができますが、その項目が期待どおりに解釈されるとは限りません。

  • アポストロフィの埋め込み 検索するデータに単一引用符 (アポストロフィ) が含まれている場合は、2 つの単一引用符を入力して、単一引用符を区切り記号ではなくリテラル値として意味することを示すことができます。 たとえば、次の条件は "Swann's Way" という値を検索します。

    ='Swann''s Way'
    
  • 長さの制限 長い文字列を入力するときに、データベースの SQL ステートメントの最大長を超えないでください。

  • 大文字と小文字の区別 使用しているデータベースの大文字と小文字を区別する規則に従います。 使用しているデータベースによって、テキスト検索で大文字と小文字が区別されるかどうかが決まります。 たとえば、一部のデータベースでは演算子 "=" が大文字と小文字の完全一致を意味し、他のデータベースでは大文字と小文字の組み合わせで一致が許可されます。

    データベースで大文字と小文字が区別される検索を使用しているかどうかがわからない場合は、次の例に示すように、検索条件で UPPER 関数または LOWER 関数を使用して、検索データの大文字と小文字を変換できます。

    WHERE UPPER(lname) = 'SMITH'
    

数値を検索する

次の規則は、検索条件に数値を入力するときに適用されます。

  • 引用符

    数値を引用符で囲まないでください。

  • 数値以外の文字

    小数点記号 (Windows コントロール パネルの [ 地域設定] ダイアログ ボックスで定義されている) と負の記号 (-) を除き、数値以外の文字は含めないでください。 桁のグループ化記号 (数千の間のコンマなど) や通貨記号は含めないでください。

  • 10 進記号

    整数を入力する場合は、検索する値が整数か実数かに関係なく、10 進記号を含めることができます。

  • 科学的表記

    次の例のように、指数表記を使用して、非常に大きい数値または非常に小さい数値を入力できます。

    > 1.23456e-9
    

日付を検索する

日付の入力に使用する形式は、使用しているデータベースと、日付を入力するクエリおよびビュー デザイナーのペインによって異なります。

データ ソースが使用している形式が不明な場合は、抽出条件ペインのフィルター列に任意の形式で日付を入力してください。 デザイナーは、そのようなエントリの大部分を適切な形式に変換します。

クエリおよびビュー デザイナーは、次の日付形式を処理できます。

  • ロケール固有

    [Windows 地域設定のプロパティ] ダイアログ ボックスで日付に指定された形式。

  • データベース固有

    データベースによって認識される任意の形式。

  • ANSI 標準日

    次の例に示すように、中かっこ、日付を指定するマーカー 'd'、および日付文字列を使用する形式。

    { d '1990-12-31' }
    
  • ANSI 標準日時

    ANSI 標準の日付に似ていますが、'd' ではなく 'ts' を使用し、1990 年 12 月 31 日の次の例のように、日付に時間、分、秒を追加します (24 時間制を使用)。

    { ts '1990-12-31 00:00:00' }
    

    一般に、通常の日付型を使用して日付を表現するデータベースでは、ANSI 標準の日付形式が使用されます。 一方、datetime データ型をサポートするデータベースでは、datetime 形式が使用されます。

次の表は、クエリおよびビュー デザイナーの各ペインで使用できる日付形式を示しています。

ペイン 日付形式
条件 ロケール固有、データベース固有、ANSI 標準

抽出条件ペイン (Visual Database Tools) に入力された日付は、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;