-2
私は私のselect文DB2のCASE文とCONCAT
テーブルで正しい情報を返すのトラブルを抱えている:ここで
prefix | suffix | alternate
------ | ------ | --------
A | 12345 | 0
B | 67890 | 0
C | 0 | 555555
は私のクエリは、私がしたい何
SELECT
CASE WHEN prefix = 'C' THEN alternate
ELSE CONCAT(prefix, suffix) END as Result
FROM table
です結果として参照:
Result
------
A12345
B67890
555555
私は実際に何を参照してください。
555555
私はこの選択
SELECT
CASE WHEN prefix = 'C' THEN alternate
ELSE suffix END as Result
FROM table
を使用してCONCATを取る場合、私は私がしたい行数ではなく、正しい列値を取得します。最初の2つの行に接頭辞がありません。私は労働組合とのコードを複製せずにこれを行うことができますどのように
結果
12345
67890
555555
思考?
Select concat(prefix,suffix) as result from table
union
select alternate as result from table
のような何かを行うことができます: 'セレクトプリフィックスを||場合は、接頭辞= 'C'その後、他の接尾辞テーブルの結果として末尾に 'を組み合わせた? – zedfoxus
実際には、そのクエリが3つの行から1つの行に移動する方法はありません。それが出力だと確信していますか? – shawnt00
それは私が得ている実際の出力です。テーブルの列名は、無実を保護するために結果が変更されます。なぜそれがうまくいかないのか分かりません。 CASEでは、WHENの内容に基づいて異なる列を表示することができ、複数の列を1つにまとめることができます。私はまた私の例を少しだけ明確にするように変更しました。プレフィックスが "C"の場合、各行に対して、結合された列の内容を返したいとします。それがCでない場合は、接頭辞と接尾辞のCONCATを返したいと思います。これは不可能ですか? – Joel