我嘗試了幾個小時并閱讀了很多帖子,但我仍然無法弄清楚如何處理這個請求:
我有一張這樣的桌子:
------ ------ ------
|ID |NAME |REKEY |
------ ------ ------
|1 |NULL |AB1C |
------ ------ ------
|2 |POP |AB1C |
------ ------ ------
|3 |NULL |DE97 |
------ ------ ------
|4 |ANNA |DE97 |
------ ------ ------
當我選擇時,結果如上表。
我想從底行獲取值“POP”并將其替換在頂行。只使用 select 因為我不允許更新記錄。
結果如下:
------ ------ ------
|ID |NAME |REKEY |
------ ------ ------
|1 |POP |AB1C |
------ ------ ------
|2 |POP |AB1C |
------ ------ ------
|3 |ANNA |DE97 |
------ ------ ------
|4 |ANNA |DE97 |
------ ------ ------
uj5u.com熱心網友回復:
也許嘗試使用max():
select ID,
max(NAME) over(partition by REKEY) as LIEFNR,
REKEY
from table_name;
uj5u.com熱心網友回復:
試試這個,Table1 是缺少值的表,另外我假設你的 REKEY 值在 id 3 和 4 的行中是相同的(如果不是這樣,請告訴我)。下面將產生您正在尋找的結果。
select *
from
(
select A.ID, B.LIEFNR, A.REKEY
from
(
select *
from Table1 A
where LIEFNR is null
)A
left join
(
select *
from Table1 B
where LIEFNR is not null
)B
on A.REKEY=B.REKEY
)K
union
select *
from Table1 B
where LIEFNR is not null
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/443419.html
標籤:sql PostgreSQL
上一篇:TypeError:不可散列的型別:上傳json資料時的'dict'
下一篇:選擇行的子集
