SQL中想依据其中两个字段,修改另一个字段


create table tt
(
    Empid int,
    Sname varchar(10),
    Class varchar(10)
)

insert into aaa values('00','A','1')
insert into aaa values('00','B','1')
insert into aaa values('00','C','1')
insert into aaa values('00','D','2')

Empid    Sname    Class
0    A    1
0    B    1
0    C    1
0    D    2

在这个表tt中,我想修改的是Empid字段,要依靠Sname和Class字段。
当Class=1时,Empid=99。当Class≠1时,Empid为null。当Sname=A时,Empid为null。
所以说第一行的Empid应该是为null 的,请问该怎么写呢?

case when 试试看,结果这样?

img


UPDATE tt
SET Empid =
case when Sname='A' then null else 
CASE
    WHEN Class = '1' THEN '99'
    WHEN Class != '1' THEN NULL
     ELSE NULL
    END end ;
WHERE Sname != 'A';