2013-03-06 22 views
6

ho seguito i record in table1DB2: Funzione per unire 3 colonna di output

c1 c2 c3 
---------- 
A B C 

Come unire C1 C2 e C3 così l'uscita vorrebbe

ABC con lo spazio tra l'uscita I funzione utilizzata concat, ma la sua non è l'assunzione di 3 argomenti come

select concat (c1,c2,c3) from table1 

smusso corro select * from table1 come ho wan t output in one column

risposta

9

questo funziona nelle versioni z/OS almeno:

select c1 concat ' ' concat c2 concat ' ' concat c3 

per conoscere il DB2 documentation

+1

Grazie per la soluzione e la documentazione DB2, mi ha davvero aiutato. – Deepak

+1

Puoi anche usare '||' al posto di 'concat'. –

3

provare questo.

select concat(concat (c1,c2),c3) from table1 
+0

Questa cancat non funziona nel mio DB2 v-9.7, c'è qualche modo per concat più di 3 colonna Risultati – Deepak

+0

non ho molta esperienza con db2 ma la mia modifica dovrebbe aiutare .. – Mortalus

+0

Ho appena provato il seguente comando in DB2 'select concat (c1, concat (c2, c3)) da table1' – Deepak

2

mi sono imbattuto lo stesso problema da poco, ho usato il || (tubi doppi) per concatenare colonne.

Ho anche dovuto scrivere un wrapper nella query per risolvere il problema.

Di seguito è riportato un frammento di ciò che le mie query sembravano alla fine.

select a1 || a2 as a2, a3 || a4 as a4 --wrapper 2 
from (
select '"service":"' as a1,a2, '","total":' as a3, a4 --wrapper 1 
from (
select distinct(a2),count(*) as a4 
from abc.table 
group by a2 
order by a2) 
); 

Qui di seguito è quello che l'output era dalla query:

"service":"ABC" , "total":123 
+0

pipe era la strada da percorrere per me! –

0

Ho avuto un problema con la conversione da SQL a DB2. Questa pagina ha aiutato, ma ho finito per fare un piccolo cambiamento:

SELECT 
RTRIM(C1) || '' || C2 as CFULL 
FROM TABLE