update問題儲存過程

時間 2022-07-12 00:55:02

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...