ODBC Driver for Elasticsearch

Build 24.0.9062

JSON 関数

本製品 では、JSON ストラクチャーをカラム値として返すことができます。本製品 を使って、これらのJSON ストラクチャーにおいて標準SQL 関数を使用できます。このセクションの例では、次の配列を使用します。

[
     { "grade": "A", "score": 2 },
     { "grade": "A", "score": 6 },
     { "grade": "A", "score": 10 },
     { "grade": "A", "score": 9 },
     { "grade": "B", "score": 14 }
]

JSON_EXTRACT

JSON_EXTRACT でJSON オブジェクトから個別の値を抜き出すことができます。次のクエリは、関数に第二引数として渡されたJSON パスに基づいて、以下に示す値を返します。
SELECT Name, JSON_EXTRACT(grades,'[0].grade') AS Grade, JSON_EXTRACT(grades,'[0].score') AS Score FROM Students;

カラム名サンプル値
GradeA
Score2

JSON_COUNT

JSON_COUNT 関数はJSON オブジェクト内のJSON 配列のエレメント数を返します。次のクエリは、関数に第二引数として渡されたJSON パスにより指定されたエレメント数を返します。
SELECT Name, JSON_COUNT(grades,'[x]') AS NumberOfGrades FROM Students;

カラム名サンプル値
NumberOfGrades5

JSON_SUM

JSON_SUM関数は、JSON オブジェクト内のJSON 配列の数値の合計を返します。次のクエリは、関数に第二引数として渡されたJSON パスにより指定された合計値を返します。
SELECT Name, JSON_SUM(score,'[x].score') AS TotalScore FROM Students;

カラム名サンプル値
TotalScore 41

JSON_MIN

JSON_MIN関数は、JSON オブジェクト内のJSON 配列の最小値を返します。次のクエリは、関数に第二引数として渡されたJSON パスにより指定された最小値を返します。
SELECT Name, JSON_MIN(score,'[x].score') AS LowestScore FROM Students;

カラム名サンプル値
LowestScore2

JSON_MAX

JSON_MAX関数は、JSON オブジェクト内のJSON 配列の最大値を返します。次のクエリは、関数に第二引数として渡されたJSON パスにより指定された最大値を返します。
SELECT Name, JSON_MAX(score,'[x].score') AS HighestScore FROM Students;

カラム名サンプル値
HighestScore14

DOCUMENT

DOCUMENT 関数はすべてのドキュメントをJSON 文字列として取得する場合に用いられます。例として、次のクエリとその結果をご覧ください。

SELECT DOCUMENT(*) FROM Employee;
上のクエリはすべてのドキュメントを返します。
 
{
  "_index": "megacorp",
  "_type": "employee",
  "_id": "2",
  "_score": 1,
  "_source": {
    "first_name": "Jane",
    "last_name": "Smith",
    "age": 32,
    "about": "I like to collect rock albums",
    "interests": [
      "music"
    ]
  }
} 

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 24.0.9062