ARRAYTABLE関数は、配列入力を処理して表形式の出力を生成します。関数自身が、どの列を投影するかを定義します。ARRAYTABLE関数は暗黙的にネストされたテーブルであり、先行するFROM Clause エントリと相関があるかもしれません。

Usage

ARRAYTABLE(expression COLUMNS <COLUMN>, ...) AS name
 
COLUMN := name datatype

Parameters

Parameter

Description

expression

The array to process, should be one of the following:

  • a java.sql.Array;
  • java array value;
  • an array constructed using ARRAY():
ARRAY('1', 2.2, 3)

 Syntax Rules

  • カラム名に重複が含まれてはいけません。

Examples

1. ネストされたテーブルとして:

SELECT x.* FROM (CALL source.invokeMDX('some query')) r, ARRAYTABLE(r.tuple COLUMNS first STRING, second BIGDECIMAL) x

2. ARRAY()の使用:

SELECT * FROM ARRAYTABLE(ARRAY('1', 2.2, 3) COLUMNS d STRING, e DOUBLE, f INTEGER) a 

ARRAYTABLEは、 関数をネストされたテーブルで使用するためのショートカットです。 ARRAY_GET この2つの呼び出し例は基本的に同じです:

ARRAYGET(val COLUMNS col1 STRING, col2 INTEGER) AS X
 
TABLE(SELECT CAST(ARRAY_GET(val, 1) AS STRING) AS col1, CAST(ARRAY_GET(val, 2) AS INTEGER) AS col2) AS X