Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
WHERE節は式を満たすオブジェクトまたは変数を検索するために使われる条件式で構成されています。WHERE節では,select文の結果やupdateやdelete操作の範囲を特定します。
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節を使用する場合の注意事項について説明します。
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 | データベースのタイムスタンプ | − |
(凡例)−:該当しない
WHERE節の注意事項について説明します。
演算子の優先順位を次に示します。
WHEREかHAVING節内でのコレクションのパス式で,条件式の一部としてIS [NOT] EMPTY式や[NOT] MEMBER [OF]式,またはSIZE操作への引数以外を使用しないでください。
なお,位置パラメタと名前付きパラメタの使い方については,「6.16.1(2) パラメタの指定方法」を参照してください。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.