sql update 特殊用法

2022-02-11 12:36:33 字數 1290 閱讀 1253

1.count 更新

schoolbasicinfo 中存在 menbercount 字段記錄條數  vw_shcoolbasic 做count查詢

update

schoolbasicinfo 

setmenbercount=(

select

vw_shcoolbasic.countnum 

from

vw_shcoolbasic 

where

schoolbasicinfo.schoolinfoid

=vw_shcoolbasic.schoolid)

2.case 更新

**update

websitequestion

sethasanswered

=case

when

hasanswered='

n'then'0

'else'1

'end

多個when

update

websitequestion

sethasanswered

=case

when

hasanswered='

n'then'0

'when

hasanswered='

y'then'1

'else'0

'end

1.26 補充:在count更新的時候,可能schoolbasicinfo.schoolinfoid 不存在於vw_shcoolbasic 

這個時候我們更新schoolbasicinfo想得到的menbercount為0,可實際schoolbasicinfo得到的卻是 null

可以結合case

**update

schoolbasicinfo 

setmenbercount=( 

case

when

schoolinfoid 

notin

(select

schoolid 

from

vw_shcoolbasic 

group

byschoolid) 

then'0

'else

(select

vw_shcoolbasic.countnum 

from

vw_shcoolbasic 

where

schoolbasicinfo.schoolinfoid

=vw_shcoolbasic.schoolid)

end)

SQL UPDATE 更新資料用法之多表查詢

資料表2張,如 表a,表b 現在要求 更新a表的字段,但這些表是從b表來的,且a和b並沒有什麼關係等。實現方式 採用update a set from b方式實現,a表和b表的字段很多,採用 變數方式比較麻煩。具體 更新 if exists select from sysobjects where ...

sql update 多表更新

1.首先建立兩個表 sql語句如下 users 使用者表 create table users id bigint,departid bigint,name text depart 部門表 create table depart id bigint,departname text users表中的d...

define 特殊用法

define conn x,y x y define tochar x x define tostring x x x y表示什麼?表示x連線y,舉例說 int n conn 123,456 結果就是n 123456 char str conn asdf adf 結果就是 str asdfadf 再...