UPDATE Team
SET Team_name = CONCAT((SELECT Team_name
FROM Team
INNER JOIN Coach ON Team.Coach_id = Coach.Coach_id
WHERE Coach_name = 'Sidny Jonson'), '_nure') ;
ORA-01427:單行子查詢回傳多于一行 ORA-06512:
在“SYS.DBMS_SQL”,第 1721 行
我需要在 ORACLE 中使用內部聯接進行更新
uj5u.com熱心網友回復:
您在上面提供的腳本將更新表中的所有行,因為您沒有 where 子句。如果您真的想更新表中的所有行,那么這應該可以。
UPDATE team SET team_name = team_name||'_nure';
如果您只想更新教練 Sidny Jonson 的行,那么這應該可以。
UPDATE team SET team_name = team_name||'_nure' where coach_id in (select coach_id from Coach where Coach_name = 'Sidny Jonson');
uj5u.com熱心網友回復:
對我來說,它看起來像
update team a set
a.team_name = a.team_name || '_nure'
where exists (select null
from coach b
where b.coach_id = a.coach_id
and b.coach_name = 'Sidny Jonson'
);
或 - 使用merge:
merge into team a
using coach b
on (a.coach_id = b.coach_id)
when matched then update set
a.team_name = a.team_name || '_nure'
where b.coach_name = 'Sidny Jonson';
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/530323.html
標籤:sql甲骨文
