Pregunta Oracle SQL, concatenar varias columnas + agregar texto


Así que básicamente quiero mostrar esto (toda la fila en UNA columna):

Me gusta [tipo columna] pastel con [columna de hielo] y una [columna de fruta].

El resultado debería ser:

Cake_Column
----------------

I like chocolate cake with whipped_cream and a cherry.

I like strawberry cake with vanilla_cream and a lemon_slice.

etc.

etc.

Necesito algún tipo de declaración TO_CHAR que haga ([columna] "algún texto" [columna]) "new_column_name";

¿Qué se supone que debo saber?


74
2017-10-24 21:54


origen


Respuestas:


Tienes dos opciones para concatenar cadenas en Oracle:

Ejemplo de CONCAT:

CONCAT(
  CONCAT(
    CONCAT(
      CONCAT(
        CONCAT('I like ', t.type_desc_column), 
        ' cake with '), 
      t.icing_desc_column),
    ' and a '),
  t.fruit_desc_column)

Utilizando || ejemplo:

'I like ' || t.type_desc_column || ' cake with ' || t.icing_desc_column || ' and a ' || t.fruit_desc_column

111
2017-10-24 22:15



¿Has probado el || operador?

Documentación del operador de concatenación de Oracle >>>


59
2017-10-24 22:01



select 'i like' || type_column || ' with' ect....

26
2017-10-24 22:02



La consulta siguiente funciona para mí @Oracle 10G ----

select PHONE, CONTACT, (ADDR1 ||  '-' || ADDR2 || '-' || ADDR3) as Address
from CUSTOMER_DETAILS
where Code='341'; 

O / P -

1111 abc@gmail.com 4th street-capetown-sa


24
2018-05-30 06:31



Prueba esto:

SELECT 'I like ' || type_column_name || ' cake with ' || 
icing_column_name || ' and a ' fruit_column_name || '.' 
AS Cake_Column FROM your_table_name;

Debería concatenar todos esos datos como una sola entrada de columna llamada "Cake_Column".


8
2017-08-16 16:50



A partir de Oracle 11, hay una nueva característica llamada LISTAGG que hace algo similar a lo que quiere aquí.

Ejemplo:

SELECCIONE LISTAGG (last_name, ';')
 DENTRO DEL GRUPO (ORDEN POR hire_date, last_name) "Emp_list",
              MIN (hire_date) "Earliest"
   FROM empleados DONDE department_id = 30;

Emp_list Anterior
-------------------------------------------------- ---------- ---------
Rafeely; Khoo; Tobias; Baida; Himuro; Colmenares 07-DEC-02

Documentación de Oracle para LISTAGG


1
2018-05-24 17:16



los Oracle/PLSQL  CONCAT la función permite concatenar dos cadenas juntas.

CONCAT( string1, string2 )

cadena1

La primera cadena para concatenar

string2

La segunda cadena para concatenar

P.ej.

SELECT 'I like ' || type_column_name || ' cake with ' || 
icing_column_name || ' and a ' fruit_column_name || '.' 
AS Cake FROM table;

1
2018-06-22 12:31