InterBase クイック スタート:Part IV - 検索条件

提供: InterBase

InterBase クイック スタート:Part IV - WHERE 句の利用 へ戻る


WHERE キーワードに続くテキスト部分は、検索条件と言います。なぜなら、SELECT 文は、この条件に見合う行を検索するためです。 検索条件は、列の名前、演算子、値から構成されています。WHERE 句には、次のような汎用的な形式があります:

WHERE column_name operator value
  • column_name は、クエリをかけるテーブルの列名です。
  • operator は、比較演算子です。
  • value は、その列と比較する値または値の範囲です。

比較演算子

検索条件では、次の演算子を使用します。

Operator 説明

比較演算子

列のデータを、検索条件の値と比較します。

<>{{{1}}}{{{1}}}{{{1}}}{{{1}}}<>BETWEENCONTAININGINIS NULLLIKESTARTING WITH

算術演算子

検索条件の値を計算および評価します。

+-*/

論理演算子

検索条件を組あ合わせたり、条件を否定したりします。

NOTANDOR です。

検索条件の値

検索条件では、リテラルまたは計算された(継承した)値を使用します。さらに、サブクエリの戻り値も利用できます。 サブクエリは、ネストされた SELECT 文です。 テキストのリテラル値は、単一引用符(')の中で指定します。

値の種類 説明

リテラル値

数字またはテキストの文字列で、その値をリテラル(そのまま)でテストしたいもの。

数字 1138 や文字列 'Smith' など。

メモ: 文字列の比較では、大文字小文字が区別されます。

派生値

関数や算術式。

salary * 2last_name

サブクエリ

ネストされた SELECT 文で、1 つまたは複数の値を返します。

結果は、検索条件を表します。

ある行を検索条件に対して比較すると、その結果は次の 3 つの値のいずれかになります:

  • True: 行が、WHERE 句で示される条件を満たしている。
  • False: 行が、WHERE 句で示される条件を満たしていない。
  • UnknownWHERE 句に含まれるフィールドが NULL 状態となっており、評価できない。

Image 025.jpg 複雑な WHERE 句を使用する

次の文を入力して、Sales テーブルにクエリをかけ、 1994/1/1 より前に注文し、出荷物を受け取ったものの、まだ支払が済んでいない顧客をすべて抽出します。WHERE 句には検索条件が 3 つあり、AND 演算子でつながれています。

SELECT *
FROM   Sales
WHERE  order_date < '1-JAN-1994'
       AND order_status = 'shipped'
       AND paid = 'n'

結果、2 行が返されます:

TutorialWhere3.png

Image 025.jpg 否定を使用する

否定演算子で、式を否定することができます。 !^~ です。 これらの演算子は、すべて NOT の類義語です。 たとえば、米国以外にいる顧客を検索したい場合、次の SELECT 文を使用してそれを行うことができます:

SELECT customer,
       country
FROM   Customer
WHERE  NOT country = 'USA'

この結果は、10 人の顧客リストを示します。

TutorialWhere4.png

まったく同じ結果に辿りつく、別の方法もあります。 それを確認するには、以下のクエリをそれぞれ入力し、結果を比較してみてください:

SELECT customer,
       country
FROM   Customer
WHERE  country != 'USA'

SELECT customer,
       country
FROM   Customer
WHERE  country ~= 'USA'

SELECT customer,
       country
FROM   Customer
WHERE  country ^= 'USA'

次は: