JSON_EXISTS 述部
JSON_EXISTS 述部は、指定された sql-json-path-expression を使用して検出される JSON 値が、JSON データに含まれているかどうかを判別します。
sql-json-path-expression を使用して、少なくとも 1 つの値が JSON-expression で見つかった場合、JSON_EXISTS 述部の結果は真になります。
sql-json-path-expression で strict モードを使用してエラーが発生した場合、述部の結果は ON ERROR 節によって決まります。
JSON-expression が NULL 値の場合、JSON_EXISTS 述部の結果は UNKNOWN になります。
- JSON 式
- 以下のデータ・タイプを除く、組み込みストリング・データ・タイプである値を戻す式 (SQLSTATE 42815)。
- GRAPHIC
- VARGRAPHIC
- DBCLOB
- BINARY
- CHAR FOR BIT DATA
- VARCHAR FOR BIT DATA
- 上記のデータ・タイプに基づくユーザー定義タイプ
文字値が戻される場合は、正しい形式の JSON データが含まれている必要があります (SQLSTATE 22032)。 バイナリー・データ・タイプが戻される場合は、明示的または暗黙的な FORMAT 節に従って解釈されます。
- FORMAT JSON
- JSON-expression は JSON データとして形式設定されています。
JSON-expression が文字ストリング・データ・タイプであれば、JSON データとして扱われます。
バイナリー・ストリング・データ・タイプの JSON-expression は、UTF-8 データとして解釈されます。
- FORMAT BSON
- JSON-expression が JSON データの BSON 表現として形式設定されていることを示します (SQLSTATE 22032)。 JSON-expression は、バイナリー・ストリング・データ・タイプでなければなりません (SQLSTATE 42815)。
- sql-json-path-expression
- 組み込み文字ストリング・データ・タイプの値を戻す式。 このストリングは SQL/JSON パス式として解釈され、JSON-expression で指定された JSON データ内で JSON 値を見つけるために使用されます。 SQL/JSON パス式について詳しくは、 sql-json-path-expressionを参照してください。
- AS パス名
- sql-json-path-expression の識別に使用する名前を指定します。
- ON ERROR
- JSON_EXISTS でエラーが発生した場合の動作を指定します。
- FALSE ON ERROR
- エラーが発生した場合、結果は偽になります。 この節がデフォルトです。
- TRUE ON ERROR
- エラーが発生した場合、結果は真になります。
- UNKNOWN ON ERROR
- エラーが発生した場合、結果は UNKNOWN になります。
- ERROR ON ERROR
- エラーが発生した場合、エラーが戻されます。
注
- パラメーター・マーカーが、サポートされるデータ・タイプに明示的にキャストされない場合は、エラーが戻されます (SQLSTATE 42815)。
例
- JSON_DATA 列に緊急時連絡先がない社員の行を戻します。 COALESCE を指定することで、NULL 値が空ストリングとして扱われます。 emergency 値を含まないすべての行を戻すために、FALSE ON ERROR 節を使用しています。
SELECT empno, lastname FROM employee WHERE NOT JSON_EXISTS(COALESCE(JSON_DATA, ''), 'strict $.emergency' FALSE ON ERROR);