2013-03-06 32 views
6

tôi có dưới đây ghi trong table1DB2: Chức năng sáp nhập 3 cột đầu ra

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

Làm thế nào để hợp nhất c2 c1 và c3 nên sản lượng muốn

ABC với không gian ở giữa đầu ra tôi hàm concat đã qua sử dụng nhưng nó không dùng 3 đối số như

select concat (c1,c2,c3) from table1 

tôi không thể chạy select * from table1 như tôi wan t xuất ra trong một cột

Trả lời

9

này hoạt động trong các phiên bản z/OS ít nhất:

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

Nhận biết DB2 documentation

+1

Cảm ơn giải pháp cũng như tài liệu DB2, Nó thực sự đã giúp tôi. – Deepak

+1

Bạn cũng có thể sử dụng '||' thay cho 'concat'. –

3

hãy thử điều này.

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

cancat này không hoạt động trong v-9,7 db2 của tôi, là có cách nào để concat hơn 3 cột kết quả – Deepak

+0

tôi không có nhiều kinh nghiệm với db2 nhưng chỉnh sửa của tôi sẽ giúp .. – Mortalus

+0

Tôi vừa thử lệnh sau trong DB2 'chọn concat (c1, concat (c2, c3)) từ table1' – Deepak

2

tôi đi qua cùng một vấn đề thời gian gần đây, tôi đã sử dụng || (ống kép) để concat để cột.

Tôi cũng phải viết trình bao bọc trong truy vấn để vượt qua vấn đề.

Dưới đây là một đoạn trích các truy vấn của tôi trông giống như cuối cùng.

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

Dưới đây là những gì các ouput là từ truy vấn:

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

đường ống là con đường của họ để đi cho tôi! –

0

Tôi đã có một vấn đề với chuyển đổi từ SQL sang DB2. Trang này đã giúp, nhưng tôi đã kết thúc thực hiện một chút thay đổi:

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