2013-03-06 11 views
6

mam poniżej rekordów w tabela1DB2: Funkcja scalania 3 kolumna wyjściowe

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

Jak scalić C1 C2 i C3 więc wyjście chciałby

ABC z przestrzeni pomiędzy wyjście I funkcja concat używane, ale jej nie przyjmować 3 argumenty jak

select concat (c1,c2,c3) from table1 

nie mogę uruchomić select * from table1 jak wan t wyjście w jednej kolumnie

Odpowiedz

9

To działa w wersjach z/OS, co najmniej:

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

Poznać DB2 documentation

+1

Dzięki za rozwiązanie i dokumentację DB2, naprawdę mi pomogło. – Deepak

+1

Możesz również użyć '||' zamiast 'concat'. –

3

spróbuj tego.

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

to cancat nie działa w moim V-9,7 DB2, czy jest jakiś sposób aby Concat więcej niż 3 kolumnie wyników – Deepak

+0

Nie mam dużego doświadczenia z db2 ale moja edycja powinna pomóc .. – Mortalus

+0

Właśnie wypróbowałem następujące polecenie w DB2 'wybierz concat (c1, concat (c2, c3)) od table1' – Deepak

2

natknąłem się na ten sam problem ostatnio użyłem || (podwójne rury) w celu dołączenia do kolumn.

Musiałem również napisać opakowanie w moim zapytaniu, aby rozwiązać problem.

Poniżej znajduje się opis moich zapytań na końcu.

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) 
); 

Poniżej jest to, co było od ouput zapytania:

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

fajki były dla mnie drogą! –

0

miałem problemu z konwersji z SQL do bazy danych DB2. Ta strona pomogła, ale skończyło się małą zmianę:

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