ORACLE语句学习档

导读:*格式:-to_date(char)//按缺省格式'dd-mm-yy'进行解析-to_date(char,'format_model')//按模式串指定的格式进行解析*例:-insertintot5values('BOBO',to_date('2008-02-28','yyyy-mm-dd'));-selectto_date(to_char(sysdate,

ORACLE语句学习档

* 格式:

- to_date(char) // 按缺省格式'dd-mm-yy'进行解析

- to_date(char, 'format_model') // 按模式串指定的格式进行解析

* 例:

- insert into t5 values('BOBO', to_date('2008-02-28', 'yyyy-mm-dd'));

- select to_date(to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss') from dual; - select to_char(to_date(to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'), 'yyyy-mm-dd hh24:mi:ss'), 'dd/mm/yyyy') from dual;

##########[ 数字 -> 字符串 ]##########

* to_char()函数可以将数字值转换为字符串形式

* 格式:

- to_char(number)

- to_char(number, 'format_model')

* 例:

- select to_char(12345.678901) from dual;

- select to_char(12345.678901, '$99,999.0000') from dual;

* 数字模式符: * 格式符 说 明

- 9 代表一位数字

- 0 代表一位数字,强制显示0 - $ 放置一个美圆符$ - L 放置一个本地货币符 - . 小数点 - , 千位指示符

* 例:

- select to_char(12345.6, 'L999,999.0000') from dual;

##########[ 字符串 -> 数字 ]##########

* to_number()函数可以将字符串转换为数字值形式

* 格式:

- to_number(char)

- to_number(char, 'format_model')

* 例:

- select to_number('12345.678901') from dual;

- select to_number('$12,345.6789', '$99,999.0000') from dual;

##########[ 通用函数 ]##########

* 通用函数适用于任何类型数据(包括空值): - nvl() - nvl2() - nullif() - coalesce() - case表达式 - decode()

##########[ NVL()函数 ]##########

* NVL()函数用于将空值null替换为指定的缺省值,适用于字符,数字,日期等类型数据

* 语法格式:

- NVL(exp1, exp2)

* 说明:

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

* 用法举例:

- select empno, ename, sal, comm, sal+nvl(comm, 0) from emp; - select empno, ename, hiredate, nvl(hiredate, sysdate) from emp; - select empno, ename, job, nvl(job, 'NO job yet') from emp;

##########[ NVL2()函数 ]##########

* NVL2()函数用于实现条件表达式功能

* 语法格式:

- NVL2(exp1, exp2, exp3)

* 说明:

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

* 用法举例:

- select empno, ename, sal, comm, nvl2(comm, sal+comm, sal) from emp;

##########[ NULLIF()函数 ]##########

* NULLIF()函数用于数据等价性比较并根据比较结果返回null或其中一个被比较的数值

* 语法格式: - NULLIF(exp1, exp2)

* 说明:

- 如果表达式exp1与exp2的值相等返回null,否则返回exp1的值

* 用法举例:

- select name 原名, nullif(pen_name, name) 化名 from author;

##########[ COALESCE()函数 ]##########

* COALESCE()函数用于实现数据\接合\功能

* 语法格式:

- COALESCE(exp1, exp2, ...)

* 说明:

- 依次考察各参数表达式,遇到非null值即停止并返回该值

* 用法举例:

- select empno, ename, sal, comm, coalesce(sal+comm, sal, 0) 总收入 from emp;

##########[ CASE()函数 ]##########

* CASE()表达式用于实现多路分支结构

* 语法格式:

- CASE exp1 when comparison_exp1 then return_exp1 - [when comparison_exp2 then return_exp2 - when comparison_expn then return_expn - else esle_exp] - end [TempName]

* 说明:

- 如果 exp1 是 comparison_exp1 的时候,就返回 return_exp1 - [ comparison_exp2 的时候,就返回 return_exp2

- comparison_expn 的时候,就返回 return_expn - else 就返回 esle_exp ] - end [别名]

* 用法举例:

- select empno, ename, sal,

- case deptno when 10 then '财务部' - when 20 then '研发部' - when 30 then '销售部' - else '未知部门' - end 部门 - from emp;

##########[ DECODE()函数 ]##########

* 和CASE()表达式类似,DECODE()函数也用于实现多路分支结构

* 语法格式:

- decode(col|expression, search1, result1 - [, search2, result2, ...,]

- [, default])

* 说明:

- 如果 col|expression 是 search1 的时候,就返回 result1 - [ search2 的时候,就返回 result2, ...] - [, default]) - [别名]

* 用法举例:

- select empno, ename, sal,

- decode(deptno, 10, '财务部', - 20, '研发部', - 30, '销售部', - '未知部门') - 部门 - from emp;

##########[ 函数嵌套 ]##########

* 单行孙数可以嵌套使用, 嵌套层次无限制

* 嵌套函数的执行顺序是由内到外

- select empno, lpad(initcap(trim(ename)), 10, '*') name, job, sal from emp;

##########[ 单行函数小结 ]##########

* 使用系统提供的单行函数可实现如下功能: - 对数据进行计算

- 控制数据的输出格式

- 设置/改变日期的显示格式 - 进行数据类型转换 - 使用NVL函数处理空值

- 实现IF-THEN-ELSE多路分支逻辑

##########[ 分组函数 ]##########

* 分组函数对一组数据进行运算,针对一组数据(多行记录)只返回一个结果,也称多行函数

* 常用分组函数

- 函数 功能说明 适用类型 - avg() 计算平均值 数值型

- count() 返回查询所行到的记录行数 任何类型数据 - max() 计算最大值 任何类型数据 - min() 计算最小值 任何类型数据 - sun() 求和 数值型

* 举例:

- select avg(sal), max(sal), min(sal), sum(sal) from emp; - select max(hiredate), min(hiredate) from emp;

##########[ COUNT()函数 ]##########

* count(*) 返回组中总记录数目

* count(exp) 返回表达式exp值非空的记录数目

* count(distinct(exp)) 返回表达式exp值不重复的, 非空的记录数目

* 举例:

- select count(*) from emp;

- select count(comm) from emp;

- select count(distinct(deptno)) from emp;

五星文库wxphp.com包含总结汇报、考试资料、办公文档、党团工作、工作范文、资格考试、旅游景点、word文档、出国留学以及ORACLE语句学习档等内容。

本文共10页1234567>>10