oracle9学习笔记

Oracle学习札记:Sean

 

NVL()函数用于将空值null替换为指定的缺省值

语法格式NVL(exp1,exp2)

Select empno,ename,sal,com,sal+nvl(comm.,0) from emp;

comm为空,则缺省的替换为0

 

------------------------------------------------------------------------------------------

NVL2(EXP1,EXP2,EXP3)

如果表达式exp1的值不为null,返回exp2的值,否则返回exp3的值

------------------------------------------------------------------------------------------

Nullifexp1exp2

如果两个表达式的值相等返回null,否则返回exp1的值

------------------------------------------------------------------------------------------

Coalesce()函数用于实现数据接合

依次考察各参数表达式,遇到非空值即停止并返回该值,一般最后一个项设为常熟

------------------------------------------------------------------------------------------

Case表达式实现多路分支

Select empno,ename,sal,

       Case         deptno when 10 then '财务部'

                            When 20 then '研发部'

                            When 30 then '销售部'

                            Else '未知部门'

       End 部门

From emp;

------------------------------------------------------------------------------------------

Decode表达式和case表达式类似

同上,decode表达式表示为:

Select empno,ename,sal,

       decode( deptno , 10 , '财务部',

                             20 , '研发部',

                             30 , '销售部',

                                   '未知部门')

        部门

From emp;

------------------------------------------------------------------------------------------

单行函数嵌套

Select empno,ename,initcap(trim(rpad(job,10,'-')))

From emp;

------------------------------------------------------------------------------------------

rpad(job,10,'-')  向右填充,不满长度10的填充-

trim忽略空格,initcap首字符大写

 

 

group by语句

出现在select子句中的函数如果不是包含在组函数(如sumavg等),则必须出现在group by子句中。

-------------------------------------------------------------------------------

如果没有group by子句,select中不允许出现单行函数与分组函数混用的情况

Where子句中不允许使用分组函数

Having 子句中用于过滤分组

分组函数最多可以嵌套两层

 

Char定长的情况下,如果输入长度不够,会默认的补空格,从中读取的时候读取原先设定的长度,因此可能需要采用trim函数进行过滤

Varchar2则不会自动添加空格

 

Contactenamejob)连接两个字符串,  || 方法类似

Instr(‘hello world’,’or’) 在前一个字符串中定位第二个字符串位置,未找到返回0,位置从1开始计算

 

To_char(Date)To_char(Date,’formal_date’)用于将date转化为char类型

‘fm yyyy-mm-dd  hh24:mi:ss am’,fm表示去掉零,am表示显示上下午

 

 

你可能感兴趣的:(oracle9学习笔记)