1樓:匿名使用者
mssql這麼寫:
update table1
seta=isnull(table2.a,table1.a),b=isnull(table2.
b,table1.b),c=isnull(table2.c,table1.
c),d=isnull(table2.d,table1.d),e=isnull(table2.
e,table1.e),from
table1,table2
where table1.account=table2.account
2樓:我又強力了
要用函式比較麻煩 給你個思路
1.遍歷table2 判斷一行不為空值的欄位2.更新這些欄位到table1
update 的時候 set 值的時候判斷給的值是不是空 如果是 就給原值也就是table1的值 否則就更新為table2的值.
3樓:匿名使用者
----oracle的寫法
update table1 t1
set (a,b,c,d,e) = (select nvl(t2.a,t1.a),nvl(t2.
b,t1.b),nvl(t2.c,t1.
c),nvl(t2.d,t1.d),nvl(t2.
e,t1.e)
from table1 t2 where t1.account = t2.account);
4樓:_特立獨行的豬
update table1
set table1.a=case when table1.a=t2.
a then table1.a else isnull(t2.a,table1.
a) end ,
table1.b=case when table1.b=t2.b then table1.b else isnull(t2.b,table1.b) end ,
table1.c=case when table1.c=t2.c then table1.c else isnull(t2.c,table1.c) end ,
table1.d=case when table1.d=t2.d then table1.d else isnull(t2.d,table1.d) end ,
table1.e=case when table1.e=t2.e then table1.e else isnull(t2.e,table1.e) end
from table2 t2
where table1.accout=t2.accout
oracle儲存過程中update語句一直在執行中無法更
仙戈雅 嘗試更改sql指令碼如下所示 create or replace procedure test wz in yf in varchar2 isv yf varchar 50 begin v yf in yf update log insert 不要用別名set zfsjdc date sys...
sql 儲存過程建立表的問題,Sql 儲存過程建立表的問題!
救救大漢江山吧 把建立語句拼成字串 儲存過程中用exec去執行建立 殤忄路 額 什麼問題呢?你要建立儲存過程?create or replace procedure test pro p name in varchar2,out msg out varchar2 定義輸入引數p name 輸出引數o...
關於SQL的儲存過程應用問題
東坡 站 一般分為十種情況,每種語法各不相同 1 建立語法 create proc procedure pro name 預設值 output 預設值 output as sql statements 2 建立不帶引數儲存過程 建立儲存過程 if exists select from sys.obj...