-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。我在前兩行中缺少前綴。
結果
12345
67890
555555
思考我如何能做到這一點,而無需複製代碼與工會?
Select concat(prefix,suffix) as result from table
union
select alternate as result from table
你可以試試:'選擇前綴|| case prefix ='C'then then combined suffix end as result from table'? – zedfoxus
這個查詢真的沒有辦法從三行到一行。你確定這是輸出嗎? – shawnt00
這是我得到的實際輸出。表列名稱,結果被改變以保護無辜當然。我只是不明白爲什麼它不起作用。 CASE允許您根據WHEN和CONCAT允許將多個列合併爲一個的內容來顯示不同的列。我也改變了我的例子有點清楚。對於每一行,如果前綴是「C」,我想返回組合列中的內容。如果它不是C,我想返回CONCAT的前綴和後綴。這不可能嗎? – Joel