我正在修改我的描述以使其更有意义。 我想选择没有值= Z2的所有ID;我怎么能用sqlserver查询呢? 下面是数据示例
PK ID Value
1 1 x1
2 1 x2
3 1 x3
4 1 X4
5 2 X1
6 3 z2
7 2 Z2
8 4 X1
9 4 X2
答案 0 :(得分:2)
编辑:由于您澄清了自己的问题,只想选择不具有z2
值的ID,因此查询变得更加简单。只需选择所有ID,然后使用z2
删除EXCEPT
值的内容;
SELECT id FROM mytable
EXCEPT
SELECT id FROM mytable WHERE value='z2';
(我假设您希望此查询中不区分大小写)
答案 1 :(得分:0)
DELETE FROM table where value <> 'z2';
答案 2 :(得分:0)
你在问题中说过你只想选择没有值= Z2的所有ID。那么为什么要进行DELETE
查询呢?如下所示的简单SELECT
查询应该为您提供预期的输出:
SELECT ID
FROM Table
WHERE Value NOT IN ('Z2')
从查询中,您可以看到我使用了一个SQL子句 - NOT IN
,它将从您的表中检索时从特定列中排除某些值。您不需要DELETE
查询来查看这些ID。
为了更好地理解,请参阅此链接:SQL: NOT Condition