這是我的問題的簡化:
SELECT 123 id, 1 toto , NULL titi FROM dual
UNION
SELECT 123 id, null toto , 2 titi FROM dual
->
ID |TOTO|TITI|
--- ---- ----
123| 1| |
123| | 2|
我想要這樣的結果(保留這兩個選擇):
ID |TOTO|TITI|
--- ---- ----
123| 1| 2 |
不知道如何融合這兩條線
一個丑陋的解決方案是:
SELECT id, min (toto), min(titi)
FROM (
SELECT 123 id, 1 toto , NULL titi FROM dual
UNION
SELECT 123 id, null toto , 2 titi FROM dual
)
GROUP BY id
uj5u.com熱心網友回復:
對我來說,它看起來像是加入 nvl 對我來說:
with
t1 as (SELECT 123 id, 1 toto , NULL titi FROM dual)
,t2 as (SELECT 123 id, null toto , 2 titi FROM dual)
select
nvl(t1.id , t2.id ) id
,nvl(t1.toto, t2.toto ) toto
,nvl(t1.titi, t2.titi ) titi
from t1 full outer join t2
on t1.id=t2.id
我不確定您的資料,所以可能它應該只是左/右連接甚至內連接。
uj5u.com熱心網友回復:
SELECT id, min (toto), min(titi)
FROM (
SELECT 123 id, 1 toto , NULL titi FROM dual
UNION
SELECT 123 id, null toto , 2 titi FROM dual
)
GROUP BY id
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/435439.html
上一篇:收到“不是單組組功能”錯誤。所有非聚合列已按以下方式列在組中
下一篇:關于如何表達一對多關系的解釋
