排除SQL Server的许多值

时间:2015-02-01 12:35:03

标签: sql sql-server

我目前仍在学习SQL,但是,我似乎无法真正了解如何exclude多个用户名。

示例我手头有2列,1是用户名,另一列是有效状态还是非活动状态。

UserName Status
===============
ABC           Y
CDE           Y
FGH           Y
IJK           Y
LMN           Y
OPQ           Y
QRS           Y

然后列表继续。例如,如果我想将整个状态从Y更改为N,则查询将类似于此。

update database
set status = 'N'

但是,如果我想添加多个值,我不知道如何查询它。

update database
set status = 'N' 
where (username != 'ABC' or username != 'DEF')
如果有人可以一步一步地教导和解释,那将是很好的因为我似乎无法理解人们如何使用特定的功能如t1和t2来解决这个问题并将其分组。

1 个答案:

答案 0 :(得分:0)

与NoDisplayName一样,在评论的后半部分提及

使用NOT IN是您的WHERE子句是排除多个值所需的子句。像这样:

update database
    set status = 'N' 
    where username NOT IN ('ABC', 'CDE', 'XYZ') 

如果要根据某些条件从表/记录集中提取值,则可以在NOT IN之后使用select查询而不是值列表。