2016.9.9《Oracle查询优化改写技巧与案例》电子工业出? 爱问知识人

发布时间:2025-01-04 21:56

参考他人成功案例,学习优化技巧 #生活技巧# #工作学习技巧# #简历制作建议#

1、coalesce (c1,c2,c3,c4,) 类似于nvl但可以从多个表达式中返回第一个不是null的值

2、要在where条件中引用列的别名,可以再嵌套一层查询

select * from ( select salary gz from person) where gz>100

3、like()函数的通配符除了%号外,还有_代表一个字符,若要在like里表达_符号需转义:

like(‘\_BCD‘) escape ‘\‘ escape 用来定义转义符,此时可以写‘\\‘代表真正的‘\‘符号

4、order by 1或2等数字 表示按第几列排序 (count(1)是不是也类似?)

5、substr(aa,-3)表示取倒数后3位,但不适用于指定起始位置,例如不能用substr(aa,3,-2)

6、排序时控制空值记录排在前或在后: order by xx nulls first(nulls last)

7、with. as. 创建只在语句执行时存在的临时视图

with e as (select ad_hp_id id, code_id code , txt_name name from ad_hp where code_id like ‘ZB%‘)

select id,code, name from e

8、left join的where、order 语句可写在on语句之后

9、内连接相当于直接where两表字段相等,只有两表都匹配的数据才出现

全连接两张表所有记录都出现,不匹配的项显示为null

左右连接可以像正常两表用where关联方式写,只不过在右表条件前加上(+):

select a.code_id,b.* from ad_hp a, bureau b

where a.code_id LIKE ‘ZB%‘

and a.txt_name_admin = b.bureau_code(+)

ORDER BY a.code_id

10、11g以后增加了统计字符串中的某字符数的函数regexp_count(‘ababcabcd‘,‘a‘) ,结果=3

11、按某列排序后,取它最大或最小值对应的其它列 max(col1) keep(dense_rank first或last order by col2)

如果要在分组内部统计,可用 over(partition by col3)。也可用group by 分组

select max(code_id) keep(dense_rank first order by geo_lat) from ad_hp t where code_id like ‘ZB%‘

12、在树型数据结构中,列举某一节点所有后代节点(第12章)

select empno as 员工编码, ename as 姓名,mgr as 主管编码,(prior ename) as 主管姓名,sys_connect_by_path(ename,‘,‘) as 路径

from scott.emp

start with empno=7566

connect by (prior empno)=mgr

2016.9.9《Oracle查询优化改写技巧与案例》电子工业出版社一书中的技巧

网址:2016.9.9《Oracle查询优化改写技巧与案例》电子工业出? 爱问知识人 https://www.yuejiaxmz.com/news/view/644478

相关内容

Oracle查询优化改写技巧与案例2.0
Oracle SQL 优化与子查询技巧
Oracle数据库高效数据清洗策略与实践案例分析
Oracle数据库日常管理与维护技巧:提升SQL性能与数据安全
MySQL上亿数据查询优化:实践与技巧
查询优化技巧
Oracle数据库日常维护技巧与最佳实践:提升性能与安全
怎么写大模型的提示词(prompts):任何人都需要掌握的查询技能
MySQL慢查询优化
sqlserver查询语句的优化技巧

随便看看