相当于 CONCAT_WS
Presto equivalent of CONCAT_WS
我正在寻找 Presto 中的一个函数,用于使用下划线等分隔符连接两列。
处理:
select concat_ws(',', col1, col2)
您可以使用:
select substr( concat(case when col1 is not null then ',' || col1 else '' end,
case when col2 is not null then ',' || col2 else '' end
),
2
)
这会将非 NULL 值连接成一个字符串。生成的字符串将以逗号开头。 substr()
删除第一个字符。
select concat(col1, ',', col2)
您正在此处查找 array_join
函数,请参阅 docs。
array_join(x, delimiter, null_replacement) → varchar
Concatenates the elements of the given array using the
delimiter and an optional string to replace nulls.
示例:
列是c1,c2 你当然可以添加更多:
WITH demo_table (c1,c2) AS
(SELECT * FROM (VALUES (1,2),(3,4),(5,null),(7,8) ))
SELECT array_join(array[c1,c2], '_', 'NA')
FROM demo_table
结果将是:
1_2
3_4
5_NA
7_8
这已添加到 PrestoSQL(现在的 Trino)几个版本之前:https://trino.io/docs/current/functions/string.html
concat_ws(string0, string1, ..., stringN) → varchar#
Returns the concatenation of string1, string2, ..., stringN using string0 as a separator. If string0 is null, then the return value is null. Any null values provided in the arguments after the separator are skipped.
concat_ws(string0, array(varchar)) → varchar
Returns the concatenation of elements in the array using string0 as a separator. If string0 is null, then the return value is null. Any null values in the array are skipped.
我正在寻找 Presto 中的一个函数,用于使用下划线等分隔符连接两列。
处理:
select concat_ws(',', col1, col2)
您可以使用:
select substr( concat(case when col1 is not null then ',' || col1 else '' end,
case when col2 is not null then ',' || col2 else '' end
),
2
)
这会将非 NULL 值连接成一个字符串。生成的字符串将以逗号开头。 substr()
删除第一个字符。
select concat(col1, ',', col2)
您正在此处查找 array_join
函数,请参阅 docs。
array_join(x, delimiter, null_replacement) → varchar
Concatenates the elements of the given array using the delimiter and an optional string to replace nulls.
示例:
列是c1,c2 你当然可以添加更多:
WITH demo_table (c1,c2) AS
(SELECT * FROM (VALUES (1,2),(3,4),(5,null),(7,8) ))
SELECT array_join(array[c1,c2], '_', 'NA')
FROM demo_table
结果将是:
1_2
3_4
5_NA
7_8
这已添加到 PrestoSQL(现在的 Trino)几个版本之前:https://trino.io/docs/current/functions/string.html
concat_ws(string0, string1, ..., stringN) → varchar#
Returns the concatenation of string1, string2, ..., stringN using string0 as a separator. If string0 is null, then the return value is null. Any null values provided in the arguments after the separator are skipped.
concat_ws(string0, array(varchar)) → varchar
Returns the concatenation of elements in the array using string0 as a separator. If string0 is null, then the return value is null. Any null values in the array are skipped.