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;