16.20 - SELECT AS JSONを使用したJSONの構成 - Teradata Vantage NewSQL Engine

Teradata Vantage™ JSONデータ型

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
created_date
2019年3月
category
プログラミング リファレンス
featnum
B035-1150-162K-JPN

SELECT AS JSON文を使用して、テーブル列からJSON文書にデータを構成できます。SELECT文は「JSON」という名前の単一のJSON列を返します。

次のクエリーは、テーブルMyTableのpkey列とval列の値からJSON文書を生成します。
SELECT AS JSON pkey, val FROM MyTable;
上記のクエリーは、JSON_COMPOSE関数を使用してJSON文書を生成する次のクエリーと同等です。
SELECT JSON_COMPOSE(pkey, val) FROM MyTable;

SELECT AS JSONを使用するためのルール

  • SELECT AS JSON文は、列値をテキスト形式のJSON文書に構成します。BSONやUBJSONなどのバイナリ形式はサポートされていません。
  • SELECT AS JSONと一緒にSELECT AND CONSUMEを指定してJSON文書を作成することはできません。例えば、次のクエリーは失敗します。
    SELECT AS JSON AND CONSUME TOP 1 a, b FROM MyQueueTable;
  • SELECT文でTOP nまたはORDER BYを指定する場合は、JSON列ではソートできないため、ソートされるフィールドを明示的に指定する必要があります。

SELECT AS JSON文の詳細については、<Teradata Vantage™ SQLデータ操作言語、B035-1146>の「Select文」を参照してください。

例: TOP nまたはORDER BYの使用

SELECT文でORDER BYを指定する場合は、次のクエリーに示すように、順序付けされているフィールドを明示的に指定する必要があります。
SELECT AS JSON pkey, val FROM MyTable ORDER BY pkey ASC;
同様に、SELECT文でTOP nを指定する場合は、並べ替えるフィールドを明示的に指定する必要があります。
SELECT AS JSON TOP 2 pkey, val FROM MyTable ORDER BY pkey DESC;
次のクエリーは、JSON型の比較が許可されていないため失敗します。
SELECT AS JSON a, b FROM MyTable ORDER BY 1 ASC;
次のクエリーは、JSON型のソートがサポートされていないため失敗します。
SELECT AS JSON TOP 10 a, b FROM MyTable ORDER BY 1 DESC;