1. 程式人生 > >oracle中update語句修改多個欄位

oracle中update語句修改多個欄位

如需要修改下列資料:表名為student


一般會這樣寫:

update student
  set sname = '李四',
      sage = 20,
      sbirthday = to_date('2010-01-01', 'yyyy-mm-dd'),
      saddress = '廣州市越秀區'
where sid = 1;

如果欄位非常多,這樣寫就稍微麻煩點,因為待修改欄位和待修改的資料沒有分離。

還有另外一種寫法(欄位多的時候寫的時候方便,書寫效率高些;欄位少的時候感覺不出來):

update student
  set (sname, sage, sbirthday, saddress) =
  (select '李四', 20, to_date('2010-01-01', 'yyyy-mm-dd'), '廣州市越秀區' from dual)
where sid = 1;

附註:

student表

create table STUDENT
(
  sid       NUMBER,
  sname     VARCHAR2(40),
  sage      NUMBER,
  sbirthday DATE,
  saddress  VARCHAR2(200)
);

資料

insert into student (sid, sname, sage, sbirthday, saddress)
values (1, '張三', 10, to_date('1994-01-01', 'yyyy-mm-dd'), '上海市浦東新區');