Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

[目次][用語][索引][前へ][次へ]

6.17.5 WHERE節

WHERE節は式を満たすオブジェクトまたは変数を検索するために使われる条件式で構成されています。WHERE節では,select文の結果やupdateやdelete操作の範囲を特定します。

<この項の構成>
(1) WHERE節で使用できる条件式
(2) 関数式
(3) 注意事項

(1) WHERE節で使用できる条件式

WHERE節で使用できる条件式を次の表に示します。

表6-21 WHERE節で使用できる条件式

内容 BNF構文の構文名
BETWEEN フィールドで指定した範囲に含まれていることを評価します。 between_expression
IN フィールドで指定したどれかの値と一致することを評価します。 in_expression
LIKE フィールドでワイルドカード記号を展開したあとの文字列と一致することを評価します。 like_expression
IS [NOT] NULL null値かどうかをテストします。 null_comparison_expression
IS [NOT] EMPTY 指定したコレクション値が空かどうかをテストします。 empty_collection_comparison_expression
[NOT] MEMBER [OF] 指定したコレクション値がコレクションのメンバであるかどうかをテストします。空のコレクションを表す場合,MEMBER OF式の値はFALSE,NOT MEMBER OF式の値はTRUEとなります。 collection_member_expression
EXISTS サブクエリの結果を判定します。一つ以上の値がある場合はtrue,それ以外はfalseを返します。 exists_expression
ALL サブクエリで返されたすべての値と比較します。 all_or_any_expression
ANY (SOME) サブクエリで返されたどれかの値と比較します。 all_or_any_expression
サブクエリ selectによる結果を記述できます。 subquery
関数式 「(2) 関数式」を参照してください。 該当する関数構文を参照

注※ BNF構文の構文名の詳細については,「付録D JPQLのBNF」を参照してください。


WHERE節を使用する場合の注意事項について説明します。

(2) 関数式

JPQLでは次の表に示す関数をWHERE節やHAVING節で使用できます。関数式の引数の値がnullかunknownの場合,関数式の値はunknownになります。

表6-22 JPQLで使用できる関数

分類 関数 返り値 引数についての補足説明
文字列関数 CONCAT 引数の連結した文字列
SUBSTRING 引数で指定した開始位置と長さの文字列 2番目と3番目引数は,返されるサブストリングの開始位置および長さを整数で指定します。文字列の先頭の位置は1です。
TRIM 特定の文字を取り除いた文字列 取り除く文字がない場合は,スペース(空白)と見なされます。任意のtrim文字はcharacterの入力文字列です。トリムの方法が指定されない場合はBOTHとなります。
LOWER 小文字化した文字列
UPPER 大文字化した文字列
LENGTH 文字列長の整数値
LOCATE 指定された位置から検索し,与えられた文字列で最初に文字列を見つけた位置の整数値 (文字列が見つからない場合は0) 1番目引数は検索する文字列,2番目引数は検索される文字列を示します。任意となる3番目の引数は,検索を開始する文字の位置を示します(デフォルトは先頭から検索)。文字列の先頭位置は1です。
算術関数 ABS 関数の引数と同じ型(Integer,Float,またはDouble)の絶対値 引数として数値を渡します。
SQRT 引数で渡された数値の平方根(実数) 引数として数値を渡します。
MOD 引数で渡された二つの数値の剰余(整数) 二つの整数を渡します。
SIZE コレクションの要素数(整数) コレクションを渡します。
日付時間関数 CURRENT_DATE データベースの日付
CURRENT_TIME データベースの時刻
CURRENT_TIMESTAMP データベースのタイムスタンプ

(凡例)−:該当しない


(3) 注意事項

WHERE節の注意事項について説明します。

(a) 演算子の優先順位

演算子の優先順位を次に示します。

  1. ピリオド(.)
  2. 算術演算子
    単項演算(+,-),乗算と除算(*,/),加算と減算(+,-)
  3. 比較演算子
    =,>,>=,<,<=,<>(not equal),[NOT] BETWEEN,[NOT] LIKE,[NOT] IN,IS [NOT] NULL,IS [NOT] EMPTY,[NOT] MEMBER [OF]
  4. 論理演算子
    NOT,AND,OR
(b) 条件式の注意事項
(c) リテラルの注意事項
(d) 識別変数の注意事項
(e) Path式の注意事項

WHEREかHAVING節内でのコレクションのパス式で,条件式の一部としてIS [NOT] EMPTY式や[NOT] MEMBER [OF]式,またはSIZE操作への引数以外を使用しないでください。

(f) 入力パラメタの注意事項

なお,位置パラメタと名前付きパラメタの使い方については,「6.16.1(2) パラメタの指定方法」を参照してください。