首页 > 解决方案 > 不等于运算符的挑战

问题描述

我有一个问题要解决。我想仅使用 where 子句从下表中获取性别不等于女性的国家/地区。我不想使用子查询,例如:从国家不在的表中选择国家(从性别='女性'的表中选择国家)

有任何想法吗 ?

ID  Name    Gender  Country
1   Jhon    Male    USA
2   Katie   Female  USA
3   Steave  Male    UK
4   Gerry   Female  UK
5   Brad    Male    AUS

问候,钱德拉。

标签: sqlhana

解决方案


您可以使用以下方法避免子查询并获得完整的行:

SELECT TOP 1 WITH TIES *
FROM tab
ORDER BY SUM(CASE WHEN Gender='Female' THEN 1 ELSE 0 END) 
         OVER(PARTITION BY Country);

DBFiddle 演示 - SQL Server


推荐阅读