如何将一个记录列更新为true,其他所有都为false

nik*_*mus 1 sql sql-server sql-update

我试图将记录中的列更新为true,以指示该记录是表中的活动记录.但是,通过更新此记录,我必须将该列的所有其他记录更新为false.有没有办法在一个SQL语句中执行此操作?我可以用两个这样的语句来做:

UPDATE My_Table
SET is_group_active = 0

UPDATE My_Table
SET is_group_active = 1
WHERE group_id = 2;
Run Code Online (Sandbox Code Playgroud)

Mur*_*nik 6

你可以使用一个case表达式:

UPDATE my_table
SET    is_group_active = CASE group_id WHEN 2 THEN 1 ELSE 0 END;
Run Code Online (Sandbox Code Playgroud)