Oracle SQL, concatena più colonne + aggiungi testo


102

Quindi fondamentalmente voglio visualizzare questo (intera riga in UNA colonna):

Mi piace la torta [tipo colonna] con [colonna glassa] e una [colonna frutta].

Il risultato dovrebbe essere:

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.

Ho bisogno di una sorta di istruzione TO_CHAR che faccia ([colonna] "testo" [colonna]) "new_column_name";

Cosa dovrei sapere?

Risposte:


145

Hai due opzioni per concatenare le stringhe in Oracle:

Esempio CONCAT:

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

Utilizzando l' ||esempio:

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

Questo è molto lento (da eseguire, non proprio da digitare). C'è un modo migliore?
Patrick Szalapski

1
Questo è così brutto, rispetto a un DBMS di marca molto vecchia. Come mai Oracle non supporta Concat in versione con molti argomenti? Tuttavia, grazie a Shankar, c'è un || operatore.
Scott Chu


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

1
Grazie mille per questa risposta. Mi piace il "||" poiché semplifica la manutenzione della query SQL.
Jason TEPOORTEN

25

La query seguente funziona per me @Oracle 10G ----

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

OPERAZIONE -

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


10

La Oracle/PLSQL CONCATfunzione permette di concatenare due stringhe insieme.

CONCAT( string1, string2 )

stringa1

La prima stringa da concatenare.

stringa2

La seconda stringa da concatenare.

Per esempio

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

8

Prova questo:

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

Dovrebbe concatenare tutti i dati come una singola voce di colonna denominata "Cake_Column".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.