我有一些Oracle Update語句與組功能有關的問題 我想更新另一個表中所有記錄的列。 但它顯示SQL錯誤:ORA-01427:單行子查詢返回多個行 這是我的示例。帶有組功能的Oracle更新聲明
create table branch_cp
(
area varchar2 (5) ,
branch_code varchar2 (5) primary key,
branch_name varchar2 (20));
------
create table branch_cp_2
(
area varchar2 (5) ,
branch_code varchar2 (5) primary key,
branch_name varchar2 (20));
----------------------------------
insert into branch_cp values ('01', '01', 'A');
insert into branch_cp values ('01', '02', 'B');
insert into branch_cp values ('03', '03', 'C');
----------
insert into branch_cp_2 values ('01', '04', 'D');
insert into branch_cp_2 values ('01', '05', 'E');
insert into branch_cp_2 values ('03', '06', 'F');
----------------------
select * from branch_cp;
------------------
update branch_cp
set branch_cp.branch_code = (select branch_cp_2.branch_code
from branch_cp_2
where branch_cp.area =branch_cp_2.area)
where exists (select 1 from branch_cp_2 where branch_cp_2.area = branch_cp.area) ;
如何在更新語句中使用組函數。請幫助
area是主鍵列brach_cp_2,因爲插入相同的值01兩次,您的插入應該失敗。 – radar 2014-10-02 15:44:24
對不起,它是輸入錯誤。分支是主鍵 – 2014-10-02 16:04:22
那麼,你有兩個'branch_cp_2'記錄,其中'area'是'01'。那麼,你如何決定這個區域的兩個'branch_cp'行的每個'branch_code'值?你說你想分組,但你需要說明你想要的 - 最小或最大代碼?兩個記錄都會得到相同的值,這會違反您的主鍵。 – 2014-10-02 16:13:29