记录一些在开发过程中,费了些事或者走了些弯路才解决的问题。
希望能给网友带来些帮助。
1.关于层次查询
select * from employees start with employee_id =100 connected by proior employee_id=manager_id;
这种层次查询,相信大部分人都知道。但如何保持层次关系并进行排序呢?
Oracle有个关键字:SIBLINGS专门用来解决这个问题。
写法如下:order siblings by employee_id
这种排序,在层次查询与树形控件结合使用的时候尤其有用。
2.横向显示多个依据不同条件的进行统计的count()结果
如,统计每个部门的总人数、及男性数量及女性数量
我使用的原始方法是:
select count(*) ,(select count(*) from employees where sex='1') as male,(select count(*) from employees where sex='0') as female from employees group by dept_id
可以解决问题,但速度很慢。今天在网上看到一个好方法,记录如下:
select count(*) ,count(case when sex='1' then 1 else null end) as male,count(case when sex='0' then 1 else null end) as female from employees group by dept_id
很巧妙的使用了count的特性及case,很不错。
3.今天发现Oracle很特别
这个语句不能用:insert into mytab (select * from mytab_tmp order by id)
注:mytab表的写了个触发器,要求按顺序处理插入的数据。
害得我只好这样写:insert into mytab (select * from (select * from mytab_tmp order by id))
4.ROWNUM用法
select * from (select rownum row_id ,month,sell from (select month,sell from sale group by month,sell))
where row_id between 5 and 9
5.Oracle计算时间差的方法
总结了一下:
天:
ROUND(TO_NUMBER(END_DATE - START_DATE))
小时:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)
分钟:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60)
秒:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60)
毫秒:
ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 60)
分享到:
相关推荐
《Oracle SQL高级编程/数据库系列》的作者莫顿以精炼、风趣的语言揭开了Oracle SQL高级编程的神秘面纱。所涵盖的内容涉及SQL核心、SQL执行、分析函数、联结、测试与质量保证等,并提供大量实用性建议,且总结出...
Oracle SQL高级编程是针对数据库开发和管理的专业领域,旨在帮助高级编程人员深入理解和掌握SQL在Oracle数据库中的应用。Oracle数据库是世界上最广泛使用的数据库系统之一,它提供了强大的功能和高效的性能,使得SQL...
《Oracle SQL高级编程》是图灵程序设计丛书数据库系列中的一部重要著作,由资深Oracle专家撰写,并得到了OakTable团队的强力推荐。这本书是Oracle开发人员和DBA提升技能、深入理解Oracle SQL不可或缺的参考资料。它...
本资源包含"Oracle SQL 高级编程"的详细教程及配套源码,旨在帮助读者深入理解并熟练掌握Oracle SQL的高级特性。 一、子查询 Oracle SQL中的子查询允许在一个查询中嵌套另一个查询,用于获取或比较数据。子查询可以...
《Oracle SQL 高级编程》一书的随书脚本集合是学习和深入理解Oracle数据库管理及SQL高级特性的宝贵资源。这些脚本涵盖了从基础查询到复杂的数据操作、存储过程、函数以及触发器等多个方面,旨在帮助读者提升在Oracle...
《Oracle SQL高级编程》这本书是数据库管理员和开发人员深入学习SQL在Oracle数据库系统中应用的宝贵资源。书中涵盖了一系列高级主题,旨在帮助读者提升在数据查询、数据分析、性能优化以及复杂业务逻辑处理等方面的...
总的来说,这本书和配套脚本为学习和掌握Oracle SQL的高级技巧提供了全面的资源,无论你是数据库管理员、开发人员还是数据分析师,都能从中受益匪浅。通过深入学习和实践,你将能够编写出更高效、更复杂的SQL查询,...
《Oracle SQL高级编程/数据库系列》的作者莫顿以精炼、风趣的语言揭开了Oracle SQL高级编程的神秘面纱。所涵盖的内容涉及SQL核心、SQL执行、分析函数、联结、测试与质量保证等,并提供大量实用性建议,且总结出...
Oracle SQL高级编程是数据库管理与开发领域中的一个重要主题,它涵盖了数据库设计、查询优化、存储过程、触发器、索引策略、并发控制以及安全性等方面的知识。在这个领域,Oracle数据库系统以其强大功能和广泛的企业...
根据给定的文件信息,本篇内容将集中在“Oracle SQL高级编程”这一主题。该主题属于Oracle数据库管理和编程领域,且特别强调了需要有基础Oracle知识的读者才能更好地吸收高级编程内容。Oracle数据库是业界广泛使用的...
Oracle SQL 是一种强大的数据库查询和编程语言,广泛用于管理和操作Oracle数据库系统。...在实践中,掌握PL/SQL的编程技巧,结合SQL的强大力量,可以实现更高效的数据管理、数据分析和应用程序开发。
在深入探讨《Oracle SQL高级编程》这一主题时,我们应当关注的是Oracle数据库系统中的SQL语言高级应用技巧,以及如何利用这些技巧来优化查询性能、增强数据处理能力,并实现更为复杂的数据分析需求。以下是对该主题...
这本书旨在帮助读者掌握Oracle SQL的高级技巧,提升在数据库管理和数据分析方面的技能。 Oracle SQL是Oracle数据库系统中的结构化查询语言,它是对数据库进行操作的基础工具,包括数据查询、数据插入、更新和删除等...
10. **性能调优**: 提供了针对Oracle SQL查询和整个数据库系统的性能优化技巧。 ### 关键知识点详解 #### SQL基础 - **DDL(数据定义语言)**: 用于创建和修改数据库结构(如表、视图等)的SQL语句。 - **DML...
在Oracle中,高级编程技巧还可能涵盖PL/SQL编程,包括存储过程、函数、触发器和包的编写和调试。 3. Karen Morton的贡献:Karen Morton是一位在Oracle领域内的专家,她可能为Oracle社区贡献了大量的文章、书籍或...
### Pro Oracle SQL - 成为SQL语言编写专家 #### 核心概念回顾与SQL语言能力介绍 本书《Pro Oracle SQL》由Karen Morton、Kerry Osborne、Robyn Sands、Riyaj Shamsudeen 和 Jared Still 共同撰写,旨在帮助读者...
Oracle SQL编程技巧是数据库管理员和开发人员提升性能和效率的关键领域。以下是一些核心要点的详细解释: **一、提高Oracle应用程序的编程效率** 1. **SQL语句书写格式与共享SQL语句资源**:保持SQL语句的一致性和...