sql
文章平均质量分 68
呆瓜呆呆
这个作者很懒,什么都没留下…
展开
-
NVL函数误区
在一开始个人一直认为NVL(expr1, expr2)函数,只要expr1为NULL就能,无论expr2是什么类型的值都行。其实这样想也是没有错的。但是,这样还没有看到这个函数的本质。其实NVL(expr1, expr2)这个函数中的expr1和expr2的值的类型是要一样的如NVL(number, number)、NVL(char, char)、NVL(sysdate, sysdate)。下原创 2014-11-13 20:51:59 · 7198 阅读 · 0 评论 -
Oracle中动态SQL详解
1.静态SQLSQL与动态SQLOracle编译PL/SQL程序块分为两个种:其一为前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;另外一种是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一定的转载 2014-11-16 20:44:48 · 1169 阅读 · 0 评论 -
让IS NULL走起索引
由于业务的需要:查看某列值为NULL的记录有多少。这是一个十分简单的需求,同时也很容易实现。无非就是使用如下语句:SELECT * FROM table1 WHERE xx IS NULL;结果得出的结果只有几十条记录,但是执行的时间比我想象中的长了许多。一般这样的查询只是要秒秒钟的问题,但是却花了十几秒,而平时使用IS NOT NULL也没有那么慢啊。于是在有空的时候就查看原因。原创 2014-11-16 14:50:59 · 12398 阅读 · 0 评论 -
DECODE函数实现列转行
在实际的开发当中有时候会有让你做统计、做报表。比如在学生选课管理系统中让你写出所有的学生的每一门可的成绩,这时候我们写的SQL得出的结果一般是每一个学生选了好多课,其中每一个课和对应的成绩都是一行记录。如下格式:原创 2014-11-15 16:24:22 · 8893 阅读 · 1 评论 -
SIGN和DECODE函数的简单使用
1、SIGN(n)函数是一个符号函数,他的功能是返回(1或0或-1)的。如下示例:SQL> SELECT SIGN(-5), SIGN(0), SIGN(5) FROM dual; SIGN(-5) SIGN(0) SIGN(5)---------- ---------- ---------- -1 0 1原创 2014-11-15 15:29:47 · 7765 阅读 · 0 评论 -
ORACLE中DATE自动转化为TIMESTAMP
今天在写SELECT语句的时候发现始终差不出来等于某个日期的数据,后来才发现是ORACLE内部发生的转化。废话不多说,直接看示例。1、构建数据DROP TABLE t PURGE;CREATE TABLE tASSELECT (SYSDATE + LEVEL) AS t_dateFROM dualCONNECT BY LEVEL < 10;CREATE INDEX i原创 2014-11-27 20:59:43 · 3956 阅读 · 0 评论