带有条件的Oracle SQL新列



我有一些SQL要做,但我找不到如何做到这一点。我有这个问题:

SELECT ENAME AS Name, SAL AS Salary FROM EMP WHERE (SELECT max(SAL) FROM EMP) = SAL OR (SELECT min(SAL) FROM EMP) = SAL;

现在我想有另一列,显示它是最大SAL还是最小SAL。

所以我得到了这样的东西:

MaxOrMin  Name    Salary 
Max       Frank   50,000
Max       Peter   50,000
Min       Patric  20,000 

类似的东西。

您可以使用分析函数:

select ename as name, sal as salary,
       (case when sal = max(sal) over () then 'max'
             when sal = min(sal) over () then 'min'
        end) as MaxOrMin
from emp;

最新更新