
我通過自我加入得到了它:
select a.id, a.name, b.id, b.name, nvl(a.name,b.name)
from names a
join names b
on a.id = b.id
where a.name is null and b.name is not null;
But don't no how do I update it in the table. I tried update statement but did not work
[]
uj5u.com熱心網友回復:
name問題是在沒有空列的行中沒有唯一的 [id, name] 組合。
SQL> select * From test;
ID NAME
---------- ------
1 naya
1 naya
2 amar
3 dhruv --> here
4 shyla
4 shyla
3 diya --> here
5 ananya
6 ishaan
5
2
2
1
3
14 rows selected.
SQL>
那么,對于 ID = 3,您希望獲得哪個名稱?您不能同時擁有兩者,因此 - 一個選項是選擇任何一個,例如 max。
SQL> update test a set
2 a.name = (select max(b.name)
3 from test b
4 where b.id = a.id
5 )
6 where a.name is null;
5 rows updated.
結果:
SQL> select * From test;
ID NAME
---------- ------
1 naya
1 naya
2 amar
3 dhruv
4 shyla
4 shyla
3 diya
5 ananya
6 ishaan
5 ananya
2 amar
2 amar
1 naya
3 diya
14 rows selected.
SQL>
uj5u.com熱心網友回復:
嘗試使用條件更新WHERE:
UPDATE names
SET name = id
WHERE name IS NULL
uj5u.com熱心網友回復:
從 Oracle 12 開始,您可以使用:
UPDATE names n
SET name = (SELECT name
FROM names x
WHERE x.id = n.id
ORDER BY name NULLS LAST
FETCH FIRST ROW ONLY)
WHERE name IS NULL
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/455354.html
上一篇:使用Java后端在更廣泛的應用程式中的兩個Vue.js應用程式實體之間路由:如何從第一個應用程式重定向到特定部分?
