我试图从我的结果中排除某些行但却无法使其工作。
我在尝试什么:
SELECT TOP 5 * FROM SubCategory
WHERE not exists
(SELECT null FROM SubCategory WHERE subCategory = 'Games')
ORDER BY views DESC
我希望它排除值为“Games”的行。但是,当我运行它时,它什么都不返回。
我正在使用Microsoft SQL Server 2012。
答案 0 :(得分:1)
我没有得到你想要做的事。只有当不存在符合条件的行时,您的查询才会返回行。如果这就是你想要的,那么是的,你所拥有的应该是什么。
从你的描述来看,听起来你似乎更喜欢这样:
SELECT TOP 5 *
FROM SubCategory
WHERE subcategory <> 'Games'
ORDER BY views DESC
除此之外,我还不确定你要去做什么。
答案 1 :(得分:0)
不需要使用NOT EXISTS子句,WHERE子句上的简单过滤器将为您提供预期的结果。
试试这个。
SELECT TOP 5 * FROM SubCategory
WHERE SubCategory <> 'Games'
ORDER BY [views] DESC