【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://developer.aliyun.com/article/
出自【进步*于辰的博客】
参考笔记一,P18.3/4、P19.5。
是虚拟字段,不真实存储,在返回结果集时生成,宏观作用类似序号。在每次查询时,从开始给结果集编号。常与、连用。
在与、连用时,由于是在查询记录时逐个生成,并迭代。因此,若的判断在第1行记录时就不满足,则无法返回记录,即未迭代,始终为,最终结果集中无任何记录,与连用时同理。
注意:所有SQL语句的执行顺序都是:。
由于是伴随生成,故与连用时,会导致混乱。因此,通常是多层嵌套,先进行排序,再使用进行筛选。(见示例)
扩展:在Oracle中,常言的查询其实是在编号后,使用进行判断,从而获取前条记录的查询方法。(见示例)
1:写法一
前2层仅对结果集进行一次排序,不做筛选,在第3层时,才进行筛选。是的别名,由于属于第2层的结果集,非,故已固定,因此可以直接使用筛选出第名。
2:写法二
在第2层时就进行结果集筛选,初始为,满足,则返回记录,同时迭代,如此反复直到条件不满足,这样就查询出前10条记录(工资最高的前10名员工)。此时固定,别名是,第3层可以直接使用筛选出第名。
补充说明:
两种写法在第1层时,都得到根据工资降序排序后的所有员工信息。
写法二较写法一,效率高很多。
参考笔记一,P23.18。
这两个伪列皆基于$color{green}{序列}$,我暂未对序列的相关理论进行整理,大家可以查阅这篇博文《Oracle数据库序列》(转发)。
“序列”是一种按照一定规则自动增加或减少数字的数据库对象,主要用于主键(新增时填充主键)。创建示例:
是序列名;是递增值,默认值为;是初始值;表示不循环;表示进行缓存,缓存大小为。
大家也可以使用图形化界面操作:
是序列的下一个值,是序列的当前值。
使用位置:
- 子句中,不包括子查询的子句;
- insert 语句的子句或子句中;
- update 语句的子句中。
不能使用位置:
- 包含、、或的视图SQL语句的子句中;
- select、update、delete的子查询中;
- 包含的、语句中。
操作,
必须先获取,才能使用。
掌握伪列,我建议:理解、自测。
本文持续更新中。。。
到此这篇pivot函数oracle用法(oracle value函数)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/haskellbc/81098.html