web-dev-qa-db-ja.com

DB2:3列の出力をマージする関数

表1に以下のレコードがあります

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

C1 c2とc3をマージして、出力が

出力の間にスペースがあるBC concat関数を使用しましたが、次のような3つの引数を取りません。

select concat (c1,c2,c3) from table1

実行できませんselect * from table11列に出力したいので

8
Deepak

これは、少なくともz/OSバージョンで機能します。

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

DB2について知る ドキュメント

12
GilShalit

最近同じ問題に遭遇しました。||を使用しました。 (二重パイプ)列に連結するため。

また、この問題を解決するために、クエリでラッパーを作成する必要がありました。

以下は、私のクエリが最終的にどのように見えるかのスニペットです。

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

以下は、クエリからの出力です。

"service":"ABC" , "total":123
6
Dave

これを試して。

select concat(concat (c1,c2),c3) from table1
2
Mortalus

SQLからDB2への変換で問題が発生しました。このページは役に立ちましたが、私は少し変更を加えることになりました:

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

SELECT C1 CONCAT '' CONCAT ( C2 CONCAT '' CONCAT C3) FROM TABLENAME

0
user7615535