次の方法で共有


比較演算子 (Visual Database Tools)

検索条件には、SQL の標準的な演算子をどれでも使用できます。

検索条件で演算子を使用するときには、次の規則が適用されます。

  • 比較する各データのデータ型は一致する必要があります。つまり、テキストはテキストと、数値は数値としか比較できません。データベース管理システムによっては、データを一時的に他のデータ型に変換する関数またはキーワード (CAST など) を使用できます。詳細については、データベースのドキュメントを参照してください。

  • テキスト データを比較する場合、結果は現在使用されている文字セットによって異なります。たとえば、テーブルがスカンジナビア文字を使用して作成されている場合、現在の文字セット (コード ページ) が Scandinavian であるかほかの文字セットであるかによって、検索結果が異なる可能性があります。

  • 比較値が NULL の場合、結果は不明になります。NULL はどの値とも一致せず、ほかの NULL 値のインスタンスとも一致しません。たとえば、"M" 以降の文字で始まる名前 (name >= 'M') を検索するときに、値を含まない行があると、どの比較演算子を使用した場合でも、それらの行は結果に含まれません。

次の表に、標準の SQL で定義されている検索条件演算子の一覧を示します。

[!メモ]

このトピックの情報は標準の SQL-92 に対する規則に基づいていますが、各データベースは SQL を独自の方法で実装している場合があります。したがって、ここに示すガイドラインはすべての場合に当てはまるわけではありません。特定のデータベースでの演算子の使用法に不明な点がある場合は、使用しているデータベースのマニュアルを参照してください。

[演算子]

説明

抽出条件ペインの例 *

SQL ペインの例

=

等しい

= 'Smith'
SELECT fname, lname
FROM employees
WHERE lname = 'Smith'

<> !=

等しくない

<> 'Active'
SELECT fname, lname
FROM employees
WHERE status <> 'Active'

>

より大きい

> '01 Jan 1995'**
SELECT fname, lname
FROM employees
WHERE hire_date >
 '12/31/90'

<

より小さい

< 100
SELECT fname, lname
FROM employees
WHERE job_lvl < 100

>= !<

以上

>= 'T'
SELECT au_lname
FROM authors
WHERE au_lname >= 'T'

<= !>

以下

<= '01 Jan 1995'**
SELECT fname, lname
FROM employees
WHERE hire_date <= 
 '01/01/95'

BETWEEN expr1 AND expr2

数値の範囲をテストする。

BETWEEN 
'01 Jan 1995' 
AND 
'31 Dec 1995'**
SELECT fname, lname
FROM employees
WHERE hire_date 
 BETWEEN '12/31/90'
 AND '12/31/91'

IS [NOT] NULL

列の内容または式の結果が NULL かどうかをテストする。

IS NULL
SELECT fname, lname
FROM employees
WHERE photo_on_file IS NULL

[NOT] LIKE

パターン一致を実行する (通常は文字データ型に限定)。

LIKE ('MAC%')
SELECT fname, lname
FROM employees
WHERE lname LIKE ('MAC%')

式 1 [NOT] IN (val1, val2, ...)または 式 1 [NOT] IN (サブクエリ)

値の一覧またはサブクエリの結果セット内に式 1 が出現するかどうかをテストして、特定の値の一覧を照合する。

IN ('SW', 'SE')
supplier_id IN
  (subquery)
SELECT fname, lname
FROM employees
WHERE sales_region IN ('SW', 'SE')
SELECT product_name
FROM products
WHERE supplier_id IN
  (SELECT supplier_id
  FROM supplier
  WHERE (country = 'Sweden'))

ANY (SOME)

サブクエリの結果セット内の 1 つ以上の行が指定した条件を満たすかどうかテストする (ANY と SOME は同じ意味で使われています。クエリおよびビュー デザイナーは、SQL 文を作成するときに ANY を使用します)。

<> ANY (subquery)
SELECT au_lname, au_fname
FROM authors
where city <> any
 (SELECT city FROM publishers)

ALL

サブクエリの結果セット内のすべての行が、特定の条件を満たすかどうかをテストする。

advance > ALL (subquery)
SELECT title FROM titles
where advance > all
  (SELECT advance FROM
   publishers,titles
  where titles.pub_id 
   = publishers.pub_id
  AND pub_name = 
   'Alogdata Infosystems')

[NOT] EXISTS

サブクエリが、なんらかの結果 (特定の結果ではなく) を返すかどうかをテストする。

EXISTS (subquery)
SELECT product_name
FROM products
WHERE EXISTS
  (SELECT * FROM 
   orders, products
  WHERE orders.prod_id 
  = products.prod_id)

*  わかりやすくするために、抽出条件ペインの例には各演算子について 1 つの例しか挙げていません。また、検索対象のデータ列についても示していません。

** 抽出条件ペインに日付を入力する場合は、Windows の [地域のオプション] ダイアログ ボックスで指定されている形式に従ってください。詳細については、「検索値を入力するときの規則」を参照してください。

参照

その他の技術情報

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

リファレンス (Visual Database Tools)