

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# コンストラクター関数
<a name="sql-functions-constructor"></a>

SQL コンストラクタ関数は、配列やマップなどの新しいデータ構造を作成するために使用される関数です。

 いくつかの入力値を取得し、新しいデータ構造オブジェクトを返します。コンストラクタ関数は通常、ARRAY や MAP など、作成するデータ型にちなんで命名されます。

コンストラクタ関数は、スカラー関数や集計関数とは異なり、既存のデータに対して動作し、単一の値を返します。コンストラクタ関数は、新しいデータ構造を作成するために使用されます。このデータ構造は、さらなるデータ処理や分析に使用できます。

AWS Clean Rooms は、次のコンストラクタ関数をサポートしています。

**Topics**
+ [MAP コンストラクタ関数](map_function.md)
+ [NAMED\$1STRUCT コンストラクタ関数](named-struct_function.md)
+ [STRUCT コンストラクタ関数](struct_function.md)

# MAP コンストラクタ関数
<a name="map_function"></a>

MAP コンストラクタ関数は、指定されたキーと値のペアを持つマップを作成します。

MAP などのコンストラクタ関数は、SQL クエリ内でプログラムで新しいデータ構造を作成する必要がある場合に役立ちます。これにより、さらなるデータ処理や分析に使用できる複雑なデータ構造を構築できます。

## 構文
<a name="map_function-syntax"></a>

```
map(key0, value0, key1, value1, ...)
```

## 引数
<a name="map_function-arguments"></a>

 *キー0*   
同等の任意のタイプの式。すべての *key0* は、最も一般的でないタイプを共有する必要があります。

 *値0*   
任意のタイプの式。すべての *valueN* は、最小共通タイプを共有する必要があります。

## 戻り値
<a name="map_function-returns"></a>

MAP 関数は、最も一般的でないタイプの *key0* として入力されたキーと、最も一般的でないタイプの *value0* として入力された値を持つ MAP を返します。

## 例
<a name="map_function-examples"></a>

次の例では、2 つのキーと値のペアを持つ新しいマップを作成します。キー `1.0`は値 に関連付けられています`'2'`。キー`3.0`は値 に関連付けられます`'4'`。その後、結果のマップが SQL ステートメントの出力として返されます。

```
SELECT map(1.0, '2', 3.0, '4');
 {1.0:"2",3.0:"4"}
```

# NAMED\$1STRUCT コンストラクタ関数
<a name="named-struct_function"></a>

NAMED\$1STRUCT コンストラクタ関数は、指定されたフィールド名と値を持つ構造体を作成します。

NAMED\$1STRUCT などのコンストラクタ関数は、SQL クエリ内でプログラムで新しいデータ構造を作成する必要がある場合に役立ちます。これにより、構造体やレコードなどの複雑なデータ構造を構築できます。これは、さらなるデータ処理や分析に使用できます。

## 構文
<a name="named-struct_function-syntax"></a>

```
named_struct(name1, val1, name2, val2, ...)
```

## 引数
<a name="snamed-truct_function-arguments"></a>

 *名前1*   
STRING リテラル命名フィールド 1。

 *val1*   
フィールド 1 の値を指定する任意のタイプの式。

## 戻り値
<a name="named-struct_function-returns"></a>

NAMED\$1STRUCT 関数は、*val*1 のタイプに一致するフィールド 1 を持つ構造体を返します。

## 例
<a name="named-struct_function-examples"></a>

次の例では、3 つの名前付きフィールドを持つ新しい構造体を作成します。 フィールド`"a"`には値 が割り当てられます`1`。フィールドには 値が`"b"`割り当てられます`2.`。 フィールド`"c"`には 値が割り当てられます`3`。結果として得られる構造体は、SQL ステートメントの出力として返されます。

```
SELECT named_struct("a", 1, "b", 2, "c", 3);
 {"a":1,"b":2,"c":3}
```

# STRUCT コンストラクタ関数
<a name="struct_function"></a>

STRUCT コンストラクタ関数は、指定されたフィールド値を持つ構造体を作成します。

STRUCT などのコンストラクタ関数は、SQL クエリ内でプログラムで新しいデータ構造を作成する必要がある場合に役立ちます。これにより、構造体やレコードなどの複雑なデータ構造を構築できます。これは、さらなるデータ処理や分析に使用できます。

## 構文
<a name="struct_function-syntax"></a>

```
struct(col1, col2, col3, ...)
```

## 引数
<a name="struct_function-arguments"></a>

 *col1*   
列名または有効な式。

## 戻り値
<a name="struct_function-returns"></a>

STRUCT 関数は、*expr**1 のタイプに一致する field*1 を持つ構造体を返します。

引数が参照という名前の場合、名前はフィールドの名前に使用されます。それ以外の場合、フィールドの名前は *colN* です。ここで、N は構造体内のフィールドの位置です。

## 例
<a name="struct_function-examples"></a>

次の例では、3 つのフィールドを持つ新しい構造体を作成します。最初のフィールドには値 1 が割り当てられます。2 番目のフィールドには値 2 が割り当てられます。3 番目のフィールドには値 3 が割り当てられます。デフォルトでは、結果の構造体のフィールドには`col1`、引数リスト内の位置に基づいて、`col2`、`col3`、および という名前が付けられます。結果として得られる構造体は、SQL ステートメントの出力として返されます。

```
SELECT struct(1, 2, 3);
 {"col1":1,"col2":2,"col3":3}
```