Presto equivalent of CONCAT_WS



我正在Presto中寻找一个函数,用类似分隔符的下划线连接两列。

您正在此处查找array_join函数,请参阅文档。

array_join(x,分隔符,null_replacement(→varchar

使用 分隔符和可选字符串连接给定数组的元素以替换null

示例:
列是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

要处理:

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()删除第一个字符。

这已经添加到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.
select concat(col1, ',', col2) 

相关内容

  • 没有找到相关文章

最新更新