Hitachi

Hitachi Advanced Data Binder SQLリファレンス


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

XYが等しい

2

X <> Y

X != Y

X ^= Y

XYが等しくない

3

X < Y

XYより小さい

4

X <= Y

XY以下である

5

X > Y

XYより大きい

6

X >= Y

XY以上である

(凡例)

XY:比較演算項

(3) 述語の評価

比較演算子の左右の比較演算項が,比較条件を満たす場合にとなります。

なお,比較演算項のどれかがナル値の場合は不定となります。

(4) 規則

  1. 比較演算項1比較演算項2の結果のデータ型が,比較可能なデータ型になるようにしてください。比較可能なデータについては,「6.2.2 変換,代入,比較できるデータ型」の「(1) 比較できるデータ型」を参照してください。

  2. 数データ同士の比較で,比較するデータのデータ型が異なる場合,次に示すように範囲が広い方のデータ型が仮定されて比較されます。

    DOUBLE PRECISIONまたはFLOAT>DECIMALまたはNUMERIC>INTEGER>SMALLINT
  3. 比較演算項の結果がナル値の場合,その比較結果は不定となります。

  4. 比較演算項の値式にバイナリデータを指定した場合,比較演算子には「=」,「<>」,「!=」,または「^=」だけが指定できます。

  5. 比較演算項の値式には配列データを指定できません。

  6. 比較演算子の両側に?パラメタだけの比較演算項を指定できません。

    • 指定できないケース:?=?

    • 指定できるケース:C1=??=10

  7. 比較演算項2には,スカラ関数CONTAINSを指定できません。

  8. 比較演算項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')

下線部分が比較述語の指定です。