Oracle 高级查询
常飞梦
10年以上工作经验,8年以数据库管理、开发经验,对数据库优化和架构有比较深的了解。
展开
-
oracle Rollup 和 Cube用法
Oracle的GROUP BY语句除了最基本的语法外,还支持ROLLUP和CUBE语句。 如果是ROLLUP(A, B, C)的话,首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。 如果是GROUP BY CUBE(A, B, C),则首先会对(A、B、C)进行GROUP BY,原创 2012-12-19 15:47:30 · 1169 阅读 · 0 评论 -
Oracle EXTRACT()函数与to_char() 函数
EXTRACT extracts and returns the value of a specified datetime field from a datetime or interval value expression. The field you are extracting must be a field of the datetime_value_expr or interval原创 2012-12-20 13:08:13 · 1358 阅读 · 0 评论 -
关于WMSYS.WM_CONCAT函数的用法(oracle 10g)
问题: 今天新系统上线,发现一个包的函数的返回结果的一字段类型和测试环境不一样,导致应用程序上线后报错。 WMSYS.WM_CONCAT 函数是行转列的方法,如下面不使用函数时的查询: SQL> Select AGENT_ID From fp_agentpolicy_dt Where POLICY_ID =140 and rownum AGENT_ID -------- 00113原创 2012-12-20 13:10:27 · 4770 阅读 · 0 评论 -
oracle分页查询
(一)实现分页及性能 Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM ) WHERE RN >= 21 其中最内层的查询SELECT * FROM TABLE_NAM原创 2012-12-20 13:13:20 · 834 阅读 · 0 评论 -
oracle分析函数row_number() over()使用
row_number() over ([partition by col1] order by col2) ) as 别名 表示根据col1分组,在分组内部根据 col2排序 而这个“别名”的值就表示每组内部排序后的顺序编号(组内连续的唯一的),[partition by col1] 可省略。 以Scott/tiger登陆,以emp表为例。 1、select deptno,ename,s原创 2012-12-20 13:05:24 · 879 阅读 · 0 评论 -
oracle递归START WITH...CONNECT BY PRIOR子句用法
connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with cond1 connect by cond2 where cond3; 例: select * from class start with parentid = 27362 Connect by prior id = parentid 简单原创 2013-01-25 16:49:17 · 1401 阅读 · 0 评论 -
Oracle 11g 新聚集函数listagg实现列转行
这是一个Oracle的列转行函数:LISTAGG() 示例代码: with temp as( select 'China' nation ,'Guangzhou' city from dual union all select 'China' nation ,'Shanghai' city from dual union all select 'China'原创 2014-02-27 16:22:28 · 6982 阅读 · 1 评论 -
使用HASH技术进行排重优化的案例
create table test_key(pk varchar(32), key1 varchar(20), key2 varchar(20), key3 varchar(20), key4 varchar(20), key5 varchar(20), key6 varchar(20),转载 2014-03-12 10:42:53 · 1388 阅读 · 0 评论 -
动态 SQL、EXECUTE IMMEDIATE、using、into、returning
很多时候我们需要在存储过程中使用动态的SQL,要怎么用好动态SQL呢,怎样执行效率最高呢。下面来介绍一下,如何使用动态SQL操作数据库。在存储过程中执行一个简单的SQL语句使用下面的方法即可。DECLARE BEGIN /* 使用该方法来创建一个新数据表,但这方法需要当前用户具有创建表的权限。 */ EXECUTE IMMEDIATE 'create table test (data1 n原创 2017-06-06 17:21:52 · 3499 阅读 · 1 评论