Tengo dos columnas que tienen el nombre del cliente y el nombre del producto. Me gustaría fusionar estas dos columnas con un '-' entre ellas.

¿Alguien podría dar un consejo sobre cómo hacer esto? Estoy usando Redshift. Probé concat y string_agg pero estoy tratando de ver si hay una forma alternativa sin group by.

customer_name, product_name, expected_output
Kev, Prod_A, Kev - Prod_A
4
Kevin Nash 16 oct. 2018 a las 09:45

2 respuestas

La mejor respuesta

Puede utilizar el operador de concatenación || como ha mencionado @Mureinik. Pero también podemos usar la función CONCAT aquí:

SELECT
    customer_name,
    product_name,
    CONCAT(CONCAT(customer_name, ' - '), product_name) AS output
FROM yourTable;

Supongo que por qué CONCAT no funcionaba para ti es que estabas intentando pasarle más de 2 parámetros. CONCAT en Redshift solo toma dos parámetros, por lo que debemos encadenarlos aquí para que funcione.

5
Tim Biegeleisen 16 oct. 2018 a las 06:50

Puede usar el operador || para concatenar cadenas:

SELECT customer_name, product_name, customer_name || ' - ' || product_name AS output
FROM   mytable
6
Mureinik 16 oct. 2018 a las 06:48