Presto эквивалент CONCAT_WS - PullRequest
       18

Presto эквивалент CONCAT_WS

0 голосов
/ 13 июля 2020

Я ищу в Presto функцию для объединения двух столбцов с разделителем, например подчеркиванием.

Ответы [ 3 ]

1 голос
/ 13 июля 2020

Для обработки:

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
             )

Это объединяет ненулевые значения в строку. Результирующая строка будет начинаться с запятой. substr() удаляет первый символ.

0 голосов
/ 13 июля 2020

Здесь вы ищете функцию array_join, см. docs .

array_join (x, delimiter, null_replacement) → varchar

Объединяет элементы данного массива, используя разделитель и дополнительную строку для замены нулей.

Пример: столбцы 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

0 голосов
/ 13 июля 2020
select concat(col1, ',', col2) 
...