不转换为不存在

时间:2012-03-20 20:56:03

标签: sql oracle

我想将此查询从not in转换为not exists

select id, name, cat from posts where id not in (1, 100)

如何将其变为不存在

2 个答案:

答案 0 :(得分:3)

如果您使用的是子查询,而不是硬编码的值列表,则无需转换此内容... not exists

您当前的查询很好。

答案 1 :(得分:3)

SELECT id, 
       NAME, 
       cat 
FROM   posts p 
WHERE  NOT EXISTS (SELECT 1 
                   FROM   (SELECT 1 AS col 
                           FROM   dual 
                           UNION 
                           SELECT 100 AS col 
                           FROM   dual) a 
                   WHERE  p.id = a.col); 

您当前的查询是好的。但是如果您想使用NOT EXISTS,请尝试一下。