类别:

字符串和二进制函数 (通用)

CONCAT_WS

连接两个或多个字符串,或连接两个或多个二进制值,并使用第一个参数作为后续字符串之间的分隔符。

备注

与 CONCAT_WS 函数的某些实现不同,Snowflake CONCAT_WS 函数不会跳过 NULL 值。

另请参阅:

CONCAT

语法

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

实参

separator

分隔符必须满足与 expression 相同的要求。

expression

输入表达式必须全部为字符串或全部为二进制值。

返回

该函数返回一个 VARCHAR 或 BINARY 值,其中包含由第一个参数分隔的第 2 到第 N 个参数。

如果任何实参为 NULL,则该函数返回 NULL。

返回值的数据类型与输入值的数据类型相同。

使用说明

  • 元数据函数(如 GET_DDL)仅接受常量作为输入。连接的输入会生成错误。

  • CONCAT_WS 在实参之间放置分隔符,而不是在最后一个实参之后放置分隔符。如果在分隔符后仅使用一个实参调用 CONCAT_WS,则不追加分隔符。

排序规则详细信息

示例

调用 CONCAT_WS 函数,使用逗号分隔符连接三个字符串:

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

以下示例显示,如果任何参数为 NULL,则函数返回 NULL:

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

以下示例显示,当只有一个字符串要连接时,CONCAT_WS 函数不会追加分隔符:

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