Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 从查询中隐藏列_Oracle - Fatal编程技术网

Oracle 从查询中隐藏列

Oracle 从查询中隐藏列,oracle,Oracle,我不想要秩列,但仍然希望通过应用稠密秩以相同的格式显示数据 select ename,position,deptno,dense_rank() over(partition by deptno order by ename asc) as rank from emp where deptno in ('10','30'); 为什么你需要排名?只需先按德普诺排序,然后按艾美排序即可 SELECT ename,position,deptno, FROM emp WHERE deptno in

我不想要秩列,但仍然希望通过应用稠密秩以相同的格式显示数据

select ename,position,deptno,dense_rank() over(partition by deptno order by ename asc) as rank from emp  where deptno in ('10','30');

为什么你需要排名?只需先按德普诺排序,然后按艾美排序即可

SELECT ename,position,deptno,
FROM emp 
WHERE deptno in ('10','30')
ORDER BY DeptNo, Ename
使用分析函数,可选择两个衍生表格或CTE

派生表/内联视图

SELECT ename,position,deptno 
FROM (select ename,position,deptno,dense_rank() over(partition by deptno order by ename asc) as rank 
      from emp  
      where deptno in ('10','30')) Z
ORDER BY deptNo, rank
通用表表达式(CTE):


最后两种技术都避免了将rank函数公开给返回结果的外部查询。它们是“技巧”和次优执行时间。除非有特殊原因需要排名数据;我不会用它。

为什么你需要排名?先按德普诺排序,然后再按艾娜排序

SELECT ename,position,deptno,
FROM emp 
WHERE deptno in ('10','30')
ORDER BY DeptNo, Ename
使用分析函数,可选择两个衍生表格或CTE

派生表/内联视图

SELECT ename,position,deptno 
FROM (select ename,position,deptno,dense_rank() over(partition by deptno order by ename asc) as rank 
      from emp  
      where deptno in ('10','30')) Z
ORDER BY deptNo, rank
通用表表达式(CTE):


最后两种技术都避免了将rank函数公开给返回结果的外部查询。它们是“技巧”和次优执行时间。除非有特殊原因需要排名数据;我不会使用它。

该查询将始终为秩返回1。你应该按员工点菜吗?@RossBush.不,我不是。然而,我已经尝试过了,它给我的排名像10部门的1,2,3和30部门的1,2,3,4,5,6。你可以发布样本数据。你是按分区排序的。在稠密_列中,记录将按照您的顺序(在分区内)给定一个顺序值。怎么可能只有1?@RossBush…请检查问题中的样本数据。该查询将始终返回1作为排名。你应该按员工点菜吗?@RossBush.不,我不是。然而,我已经尝试过了,它给我的排名像10部门的1,2,3和30部门的1,2,3,4,5,6。你可以发布样本数据。你是按分区排序的。在稠密_列中,记录将按照您的顺序(在分区内)给定一个顺序值。这怎么可能不是1呢?@RossBush…请检查问题中的样本数据。我在尝试分析函数。@Jaspreitsgh我明白了;但是窗口函数的开销似乎不值得。我添加了两种方法,您可以这样做;但是如果你不向查询公开排名,我看不出有什么理由这么做。我试着使用分析函数。@Jaspreitsigh,我明白了;但是窗口函数的开销似乎不值得。我添加了两种方法,您可以这样做;但是如果你不向查询公开排名,我看不出有什么理由这么做。