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 试试看,结果这样?
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';