oracel 优化之 使用HINT
摘要:1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化. 例如: SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’;3. /*+CHOOSE*/ 表明如果数...
阅读全文
posted @
2012-12-21 09:37
baiyixianzi
阅读(279)
推荐(0)
oracle中小数格式化
摘要:oracle to_char(小数) 默认如此 oracle就是这样的 to_char用法本身也是需要格式化的,只不过我们平时对于普通字符都是直接to_char而已,对于时间,钱币等都是需要格式化的,对于小数不格式化就是没有前面的零的,可以这样格式化select to_char(0.1,'fm9999990.9999') from dual;
阅读全文
posted @
2012-11-13 16:08
baiyixianzi
阅读(1170)
推荐(0)
plsql 基础语法
摘要:--数据定义--创建表--drop table scores;--drop table student;Create table student(Name varchar2(10) constraint nname not null ,No varchar2(3) constraint pk_no primary key ,Sex varchar2(4)default '男' ); create table scores(id number constraint pk_ID primary key ,no varchar2(3) constraint fp_...
阅读全文
posted @
2012-08-31 09:55
baiyixianzi
阅读(2099)
推荐(0)
Oracle中connect by...start with...的使用
摘要:一、语法 大致写法:select * from some_table [where 条件1] connect by [条件2] start with [条件3]; 其中 connect by 与 start with 语句摆放的先后顺序不影响查询的结果,[where 条件1]可以不需要。 [where 条件1]、[条件2]、[条件3]各自作用的范围都不相同: [where 条件1]是在根据“connect by [条件2] start with [条件3]”选择出来的记录中进行过滤,是针对单条记录的过滤, 不会考虑树的结构; [条件2]指定构造树的条件,以及对树分支的过滤条件,在这里执行的过滤
阅读全文
posted @
2012-08-30 23:03
baiyixianzi
阅读(22844)
推荐(1)
经典事例
摘要:-- 按照指定年查询该年内各月得新规案件在30天内的解决率-- 按照指定年查询该年内各月得新规案件在30天内的解决率SELECT MON.MON AS 年月 ,CASE WHEN FM_ITM.TMCI = 0 THEN 0 ELSE NVL(ROUND((FZ_ITM.TMCI/FM_ITM.TMCI)*100),0) END AS TMCI月解决率 ,CASE WHEN FM_ITM.FTMS = 0 THEN 0 ELSE NVL(ROUND((FZ_ITM.FTMS/FM_ITM.FTMS)*100),0) END AS FTMS月解决率 ,CASE WHEN FM_ITM.GTMS
阅读全文
posted @
2012-08-30 17:25
baiyixianzi
阅读(267)
推荐(0)
to_char to_date 的用法
摘要:TO_CHAR 是把日期或数字转换为字符串TO_DATE 是把字符串转换为数据库中得日期类型转换函数TO_NUMBER 将字符转化为数字 TO_CHAR 使用TO_CHAR函数处理数字 TO_CHAR(number, '格式') TO_CHAR(salary,’$99,999.99’); 使用TO_CHAR函数处理日期 TO_CHAR(date,’格式’); TO_NUMBER 使用TO_NUMBER函数将字符转换为数字 TO_NUMBER(char[, '格式']) TO_DATE 使用TO_DATE函数将字符转换为日期 TO_DATE(char[,
阅读全文
posted @
2012-08-30 14:53
baiyixianzi
阅读(1746)
推荐(0)
oracle 行列转换
摘要:1、固定列数的行列转换如student subject grade--------- ---------- --------student1 语文 80student1 数学 70student1 英语 60student2 语文 90student2 数学 80student2 英语 100……转换为 语文 数学 英语student1 80 70 60student2 90 80 100……语句如下:select student, sum(decode(subject,'语文', grade,null)) "语文",sum(decode(...
阅读全文
posted @
2012-08-30 14:52
baiyixianzi
阅读(156)
推荐(0)
oracle 实现日历
摘要:SELECT CASE WHEN (new_yweek = MIN(new_yweek)OVER(PARTITION BY mon ORDER BY new_yweek)) THEN mon_name ELSE NULL END AS month,new_yweek AS yweek,ROW_NUMBER() over(PARTITION BY mon ORDER BY new_yweek) AS mweek,SUM(DECODE(wday, '1', mday, NULL)) AS sun,SUM(DECODE(wday, '2', mday, NULL))
阅读全文
posted @
2012-08-29 09:23
baiyixianzi
阅读(768)
推荐(0)
row_number() 和 over() 的用法
摘要:http://daniel-tu.iteye.com/blog/973761http://linux.net527.cn/fuwuqiyingyong/Oracle/2011/1116/44625.html
阅读全文
posted @
2012-08-28 23:01
baiyixianzi
阅读(186)
推荐(0)
sql强化训练(4)
摘要:1 关于group by 的练习题 数据库中数据如下:rq sf--------------------------20120828 胜20120828 胜20120828 负20120828 负20120829 胜20120829 胜20120829 负如何用sql实现如下结果:rq s f20120828 2 220120829 2 1方法一: View Code 1 SELECT RQ2 ,SUM(CASE WHEN S='胜' THEN 1 ELS...
阅读全文
posted @
2012-08-28 16:26
baiyixianzi
阅读(172)
推荐(0)
exists 和not exists 用法
摘要:有两个简单例子,以说明 “exists”和“in”的效率问题1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。2) select * from T1 where T1.a in (select T2.a from T2) ;T1数据量非常大而T2数据量小时,T1>>T2 时,2) 的查询效率高。exists 用法:请注意 1)句中的有颜色字体的部分 ,理解其含义;其中 “select 1 from T2 where
阅读全文
posted @
2012-08-28 14:27
baiyixianzi
阅读(273)
推荐(0)
ORACLE函数大全
摘要:SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual; A A ZERO SPACE --------- --------- --------- --------- 65 97 48 322.CHR 给出整数,返回对应的字符; SQL> select chr(54740) zhao,chr(65) chr65 from dual;ZH C -
阅读全文
posted @
2012-08-27 17:14
baiyixianzi
阅读(150)
推荐(0)
SQL查询强化训练(3)
摘要:摘自:http://www.iteye.com/topic/194446设有学生选取修课程数据库:S(S#, SNAME, AGE, SEX, DEPARTMENT, ADDRESS, BIRTHPLACE)SC(S#, C#, GRADE)C(C#, CNAME, TEACHER)(1) 李老师所教的课程号、课程名称;1 SELECT C#, CNAME;2 FROM C;3 WHERE TEACHER=”李”(2) 年龄大于23岁的女学生的学号和姓名;1 SELECT S#, SNAME;2 FROM S;3 WHERE AGE>23 AND SEX=”女”(3) “李小波...
阅读全文
posted @
2012-08-19 22:32
baiyixianzi
阅读(637)
推荐(0)
SQL查询强化训练(2)
摘要:摘自 http://www.iteye.com/topic/1112015现在有三个表student,score,course 对应的建表语句如下: View Code 1 CREATE TABLE student( 2 student_id NUMBER PRIMARY KEY, 3 student_name,VARCHAR2(30) NOT NULL) 4 5 CREATE TABLE score( 6 score_id NUMBER PRIMARY KEY, 7 student_id NUMBER, 8 course_id NUMBER, 9 score NUMBER)...
阅读全文
posted @
2012-08-19 22:25
baiyixianzi
阅读(649)
推荐(0)
SQL查询强化训练(1)
摘要:1 SELECT T1.C#, 2 3 ROUND(T1.AVG_SCORE, 2) AVG_SCORE, 4 5 ROUND(T2.PASS_COUNT / T1.ALL_COUNT, 2) PASS_POINT 6 7 FROM (SELECT DISTINCT C#, 8 9 COUNT(1) OVER(PARTITION BY C# ORDER BY C#) ALL_COUNT,10 11 AVG(SCORE) OVER(PAR...
阅读全文
posted @
2012-08-19 14:51
baiyixianzi
阅读(8910)
推荐(0)