

# 文字列と配列を連結する
<a name="concatenating-strings-and-arrays"></a>

文字列の連結と配列の連結では、同様の手法が使用されます。

## 文字列を連結する
<a name="concatenating-strings"></a>

2 つの文字列を連結するには、以下の例にあるように、二重パイプ `||` 演算子を使用することができます。

```
SELECT 'This' || ' is' || ' a' || ' test.' AS Concatenated_String
```

このクエリは以下を返します。


****  

| \# | Concatenated\_String | 
| --- | --- | 
| 1 | `This is a test.` | 

`concat()` 関数を使って同じ結果を得ることが可能です。

```
SELECT concat('This', ' is', ' a', ' test.') AS Concatenated_String
```

このクエリは以下を返します。


****  

| \# | Concatenated\_String | 
| --- | --- | 
| 1 | `This is a test.` | 

`concat_ws()` 関数を使用して、最初の引数で指定された区切り文字で文字列を連結できます。

```
SELECT concat_ws(' ', 'This', 'is', 'a', 'test.') as Concatenated_String
```

このクエリは以下を返します。


****  

| \# | Concatenated\_String | 
| --- | --- | 
| 1 | `This is a test.` | 

文字列データ型の 2 つの列をドットで連結するには、二重引用符を使用して 2 つの列を参照し、そのドットをハードコーディングされた文字列として一重引用符で囲みます。列が文字列データ型ではない場合、`CAST("{{column_name}}" as VARCHAR)` を使用して最初に列をキャストできます。

```
SELECT "col1" || '.' || "col2" as Concatenated_String
FROM {{my_table}}
```

このクエリは以下を返します。


****  

| \# | Concatenated\_String | 
| --- | --- | 
| 1 | `{{col1_string_value}}.{{col2_string_value}}` | 

## 配列を連結する
<a name="concatenating-arrays"></a>

同じテクニックを使用して配列を連結できます。

複数の配列を連結するには、二重パイプ `||` 演算子を使用します。

```
SELECT ARRAY [4,5] || ARRAY[ ARRAY[1,2], ARRAY[3,4] ] AS items
```

このクエリは以下を返します。


****  

| \# | 項目 | 
| --- | --- | 
| 1 | `[[4, 5], [1, 2], [3, 4]]` | 

複数の配列を単一の配列に統合するには、二重パイプ演算子、または `concat()` 関数を使用します。

```
WITH
dataset AS (
  SELECT
    ARRAY ['Hello', 'Amazon', 'Athena'] AS words,
    ARRAY ['Hi', 'Alexa'] AS alexa
)
SELECT concat(words, alexa) AS welcome_msg
FROM dataset
```

このクエリは以下を返します。


****  

| \# | welcome\_msg | 
| --- | --- | 
| 1 | `[Hello, Amazon, Athena, Hi, Alexa]` | 

`concat()` とその他の文字列関数の詳細については、Trino ドキュメントの「[String Functions and Operators](https://trino.io/docs/current/functions/string.html)」(文字列関数と演算子) を参照してください。