在 Oracle 19c 中,我有如下資料:
with t as (
select 1 Cat, 1 id, 11 val from dual
union all
select 1, 3, 33 from dual
union all
select 2, 2, 22 from dual
union all
select 2, 4, 44 from dual)
select *
from t
在查詢結果中,我想獲取4每個catid 為 1-4 的行,如果沒有這樣id的cataval必須為空:
| 貓 | ID | 值 |
|---|---|---|
| 1 | 1 | 11 |
| 1 | 2 | |
| 1 | 3 | 33 |
| 1 | 4 | |
| 2 | 1 | |
| 2 | 2 | 22 |
| 2 | 3 | |
| 2 | 4 | 44 |
uj5u.com熱心網友回復:
使用PARTITION帶有行生成器的 ed 連接:
SELECT t.cat,
i.id,
t.val
FROM (SELECT LEVEL AS id FROM DUAL CONNECT BY LEVEL <= 4) i
LEFT OUTER JOIN t
PARTITION BY (t.cat)
ON (i.id = t.id)
哪個輸出:
貓 ID 價值 1 1 11 1 2 無效的 1 3 33 1 4 無效的 2 1 無效的 2 2 22 2 3 無效的 2 4 44
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/484725.html
