2

我是 oracle 的新手,我想更新列中的多行值id = 1 , 2

我试过这个:

update Tester 
set employee_phone_number = ( 0789456123,0789456321)  
where employee_id in (1,2); 

但它给了我“缺少右括号”

任何帮助,请提前致谢。

4

2 回答 2

3

另一种方法:

merge into
  tester
using (
  select 1 id,'0123456785' employee_phone_number from dual union all
  select 2 id,'0123456786' employee_phone_number from dual) new_values
on (
  tester.id = new_values.id)
when matched then update 
  set employee_phone_number = new_values.employee_phone_number;

更多单词,但允许仅在一个位置指定值并扩展以允许插入 id 不存在的位置。

http://sqlfiddle.com/#!4/8fc86/3

于 2013-05-19T09:03:36.503 回答
2

试试这个:

update Tester 
set employee_phone_number = CASE WHEN employee_id = 1 THEN 0789456123
                                 WHEN employee_id = 2 THEN 0789456321
                            END
where employee_id in (1,2);
于 2013-05-19T08:01:27.857 回答