首页 > 解决方案 > 仅显示一次列值

问题描述

我有这样的数据:

在此处输入图像描述

我想这样展示

在此处输入图像描述

所有员工的职位都与经理相同,但我想展示一次。

标签: oracle

解决方案


您可以执行以下操作,但您应该仅出于显示目的执行此操作:

WITH a (ename, position, deptno) AS (SELECT 'KING', 'Manager', 10 FROM dual 
                                     UNION ALL 
                                     SELECT 'BLAKE', 'Manager', 30 FROM dual 
                                     UNION ALL 
                                     SELECT 'CLARK', 'Manager', 10 FROM dual 
                                     UNION ALL 
                                     SELECT 'ALLEN', 'Manager', 30 FROM dual 
                                     UNION ALL 
                                     SELECT 'WARD', 'Manager', 30 FROM dual)
SELECT ENAME
     , CASE WHEN position = MAX(position) over (ORDER BY ROWNUM 
                                                 ROWS BETWEEN 1 preceding AND 1 preceding) 
            THEN NULL 
            ELSE position 
       END position
     , deptno 
  FROM a 

如果该值与前一行中的值相同,则会显示NULL该列。POSITION


推荐阅读