7.19.7 比較述語
探索条件に比較述語を指定できます。比較述語の例を次に示します。
- (例)
-
販売履歴表(SALESLIST)から,2011/9/6以降に商品を購入した顧客の,顧客ID(USERID),商品コード(PUR-CODE),購入日(PUR-DATE)を検索します。
SELECT "USERID","PUR-CODE","PUR-DATE" FROM "SALESLIST" WHERE "PUR-DATE">=DATE'2011-09-06'
説明
-
下線部分が比較述語となります。
-
>= を比較演算子といいます。
-
比較演算子の左右にある項を比較演算項といいます。この例では,PUR-DATE(列名)とDATE'2011-09-06'(定数)が比較演算項になります。
-
- 〈この項の構成〉
(1) 指定形式
比較述語::=比較演算項1 比較演算子 比較演算項2 比較演算項::=値式 比較演算子::={=|<>|!=|^=|<|<=|>|>=}
(2) 指定形式の説明
- 比較演算項1,比較演算項2:
-
比較演算項には,列名や定数などを指定します。比較演算項は値式の形式で指定します。値式については,「7.20 値式」を参照してください。
- 比較演算子:
-
比較演算子には,=,<>,!=,^=,<,<=,>,>=のどれかを指定します。各指定値の意味を次の表に示します。
表7‒9 比較演算子の意味 項番
比較演算子の指定
意味
1
X = Y
XとYが等しい
2
X <> Y
X != Y
X ^= Y
XとYが等しくない
3
X < Y
XがYより小さい
4
X <= Y
XがY以下である
5
X > Y
XがYより大きい
6
X >= Y
XがY以上である
- (凡例)
-
X,Y:比較演算項
(3) 述語の評価
比較演算子の左右の比較演算項が,比較条件を満たす場合に真となります。
なお,比較演算項のどれかがナル値の場合は不定となります。
(4) 規則
-
比較演算項1と比較演算項2の結果のデータ型が,比較可能なデータ型になるようにしてください。比較可能なデータについては,「6.2.2 変換,代入,比較できるデータ型」の「(1) 比較できるデータ型」を参照してください。
-
数データ同士の比較で,比較するデータのデータ型が異なる場合,次に示すように範囲が広い方のデータ型が仮定されて比較されます。
DOUBLE PRECISIONまたはFLOAT>DECIMALまたはNUMERIC>INTEGER>SMALLINT
-
比較演算項の結果がナル値の場合,その比較結果は不定となります。
-
比較演算項の値式にバイナリデータを指定した場合,比較演算子には「=」,「<>」,「!=」,または「^=」だけが指定できます。
-
比較演算項の値式には配列データを指定できません。
-
比較演算子の両側に?パラメタだけの比較演算項を指定できません。
-
指定できないケース:?=?
-
指定できるケース:C1=?,?=10
-
-
比較演算項2には,スカラ関数CONTAINSを指定できません。
-
比較演算項1にスカラ関数CONTAINSを指定した場合,比較演算子には「>」を指定してください。また,比較演算項2には0を指定してください。
(5) 例題
- 例題
-
販売履歴表(SALESLIST)から,2011/9/4以降に商品コードP001またはP003の商品を購入した顧客の,顧客ID(USERID),商品コード(PUR-CODE),購入日(PUR-DATE)を検索します。
SELECT "USERID","PUR-CODE","PUR-DATE" FROM "SALESLIST" WHERE "PUR-DATE">=DATE'2011-09-04' AND ("PUR-CODE"='P001' OR "PUR-CODE"='P003')
下線部分が比較述語の指定です。