Oracle中的decode
上一篇文章写了一个oracle的一个行转列的例子,里面用到了oracle中重要的函数 decode,这篇文章就来简单的学习这个函数
DECODE函数和我们语言结构中的条件语句(IF)相似。它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。
DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值.
其具体的语法格式如下:
DECODE(input_value,value,result[,value,result…][,default_result]);
其中:
input_value 试图处理的数值。DECODE函数将该数值与一系列的序偶相比较,以决定最后的返回结果
value 是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result 是一组成序偶的结果值
default_result 未能与任何一序偶匹配成功时,函数返回的默认值
下面的例子说明了,如何读取用户CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的项目,作为DECODE函数的实参支持值。
SELECT checkup_type,
DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’,’Invalid’)
from checkup;
相关文档:
手动启动数据库:
启动监听程序:lsnrctl start
启动Oracle服务:oradim -startup -sid orcl或者net start oracleserviceorcl
其中orcl为数据库的服务名或者SID,oradim -startup -sid orcl这个命令以前自己没用过
权限管理:
系统权限:
create us ......
查看当前数据库归档日志操作模式:
select name,log_mode from v$database;
查看归档日志位置:
show parameter log_archive_dest; 第一个归档位置
show parameter log_archive_duplex_dest; 第二个归档位置
先关闭数据库,然后装载数据库:
shutdown immediate;
startup mount;
修改归档日志操作模式,然后打开数据库 ......
分页查询格式:
SELECT * from
(
SELECT A.*, ROWNUM RN
from (SELECT * from TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21
其中最内层的查询SELECT * from TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。
上面给出的这个分页查询语句,在大多 ......
TO_DATE格式(以时间:2007-11-02 13:45:25为例)
Year:
yy two digits 两位年 ......
我在工作中在Oracle中多表查询再按时间倒序时,用order by 表名.datatime desc 总是实现不了。
不过最后问杨鹃最后和我说可以把我们查询的总个sql语句做为一个表来排序:
select rownum,aa.* from (.... order by 表名.datatime desc ) aa ......