JSON_EXISTS 述部

JSON_EXISTS 述部は、指定された sql-json-path-expression を使用して検出される JSON 値が、JSON データに含まれているかどうかを判別します。

Read syntax diagramSkip visual syntax diagramJSON_EXISTS(JSON-expression FORMAT JSONFORMAT BSON,sql-json-path-expression ASpath-nameFALSE ON ERRORTRUEUNKNOWNERRORON ERROR)

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)。

  1. 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);