カテゴリ:

文字列とバイナリ関数 (一般)

CONCAT_WS

2つ以上の文字列を連結するか、2つ以上のバイナリ値を連結し、最初の引数を次の文字列間の区切り文字として使用します。

注釈

CONCAT_WS 関数の一部の実装とは異なり、Snowflake CONCAT_WS 関数は NULL 値をスキップしません。

こちらもご参照ください。

CONCAT

構文

CONCAT_WS( <separator> , <expression> [ , <expression> ... ] )
Copy

引数

separator

区切り文字は、 expression と同じ要件を満たしている必要があります。

expression

入力式はすべての文字列またはすべてのバイナリ値である必要があります。

戻り値

この関数は、最初の引数で区切られた2番目からN番目の引数を含む VARCHAR または BINARY 値を返します。

いずれかの引数が NULL の場合、関数は NULL を返します。

返される値のデータ型は、入力値のデータ型と同じです。

使用上の注意

  • GET_DDL などのメタデータ関数は、入力として定数のみを受け入れます。連結入力はエラーを生成します。

  • CONCAT_WS は、最後の引数の後ではなく、引数の間に区切り文字を置きます。区切り文字の後に引数を1つだけ指定して CONCAT_WS を呼び出すと、区切り文字は追加されません。

照合順序の詳細

CONCAT_WS を呼び出して、コンマ区切り文字で3つの文字列を連結します。

SELECT CONCAT_WS(',', 'one', 'two', 'three');
Copy
+---------------------------------------+
| CONCAT_WS(',', 'ONE', 'TWO', 'THREE') |
|---------------------------------------|
| one,two,three                         |
+---------------------------------------+

次の例は、引数のいずれかが NULL の場合は関数が NULL を返すことを示しています。

SELECT CONCAT_WS(',', 'one', NULL, 'two');
Copy
+------------------------------------+
| CONCAT_WS(',', 'ONE', NULL, 'TWO') |
|------------------------------------|
| NULL                               |
+------------------------------------+

次の例は、連結する文字列が1つだけの場合、 CONCAT_WS 関数は区切り文字を追加しないことを示しています。

SELECT CONCAT_WS(',', 'one');
Copy
+-----------------------+
| CONCAT_WS(',', 'ONE') |
|-----------------------|
| one                   |
+-----------------------+