1. 程式人生 > >SQL更新資料時多個欄位時合在一起的寫法

SQL更新資料時多個欄位時合在一起的寫法

作者:iamlaosong

Oracle正常更新一個表中多個欄位時,欄位是分開寫的,例如:

update tb_county t
   set t.prov_name = '安徽', t.city_name = '合肥市', t.xs_mc = '廬陽區'
 where t.xs_code = '2300';

可是,更新的值如果來自一個子查詢,則這些欄位是可以合在一起寫的,例如:
update tb_county t
   set (t.prov_name, t.city_name, t.xs_mc) = (select t.prov_name,
                                                     t.city_name,
                                                     t.xs_mc
                                                from tb_yzbm t
                                               where t.postcode = '230000')
 where t.xs_code = '2300';

由此,我們可以將第一條語句改寫為:
update tb_county t
   set (t.prov_name, t.city_name, t.xs_mc) = (select '安徽',
                                                     '合肥市',
                                                     '廬陽區'
                                                from dual)
 where t.xs_code = '2300';

這樣的寫法人機互動時沒什麼好處,但是程式設計實現更新語句時,這樣的格式合成update語句要簡單的多。