decode(a,b,c,d);如果a的结果为b,那么返回c,否则a的结果为d);
解决方案 »
- 郁闷,安装了Oracle客户端(oracle-client),但是桌面上的启动图标不小心删除了,请问这个启动程序图标在哪个目录下啊
- 求高人解答
- oracle数据库导出
- 怎么在JAVA中获得存储过程中的返回值(自定义的类型)
- 关于ora-00922选项缺失或无效错误?请帮忙解决!
- RMAN 备份方案
- oracle 10g中建dblink连接oracle 9i提示无法解析指定的连接标志符
- 请大家帮忙:这样的oracle冷备份恢复可行否?
- 知道package名,怎么知道这个包被哪些报表调用
- 无法启动OracleOraHome81ManagerServer 服务?
- 请教一条SQL语句
- 如何关联2个不同数据库中的表
用意在于对于每个不同的EMPLO,用子查询按由高到低的顺序先分别取出最高的3个SALARY记录,然后分别作为SALARY1,SALARY2,SALARY3的值输出,其中,SALARY1对应最高的SALARY,SALARY3对应第三高的SALARY。
decode()相当于if-then-else语句。
order by salary desc nulls last) top3有什么作用?
如果top3是1,取salary的最大值,salary1是字段名
partition by 不清楚,关注
over (partition by employerid
order by salary desc nulls last)ROW_NUMBER ( ) OVER ( [query_partition_clause] order_by_clause )是Oracle数据仓库中的分析函数,这就是它的语法。
ROW_NUMBER函数返回 query_partition_clause 部分每行的唯一值(由ORDER BY确定,从1开始) 。
select employerid ,salary,row_number()over (partition by employerid order by rank3 ) top3
from (
select employerid ,salary,rank3 from(
select employerid ,salary,rank()over(partition by employerid order by salary desc) as rank3 from xxx)
where rank3<=3
)
)
where top3<=3其中的rank()over(partition by employerid order by salary desc) as rank3 from xxx是什么意思啊?和row_number() over (partition by employerid order by salary desc nulls last)有什么区别?
谢谢!