码迷,mamicode.com
首页 > 数据库 > 详细

ORACLE 第3节 单行函数

时间:2015-08-09 00:29:15      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:


?SQL中不同类型的函数
?在SELECT 语句中使用字符,数字,日期和转换函数
?使用条件表达式

两种SQL函数
技术分享

单行函数:

?操作数据对象
?接受参数返回一个结果
?只对一行进行变换
?每行返回一个结果
?可以转换数据类型
?可以嵌套
?参数可以是一列或一个值

function_name [(arg1,arg2,...)]



技术分享


字符型函数:
技术分享

        大小写控制函数

大小写控制函数:

这类函数改变字符的大小写。

LOWER

UPPER

INITCAP


显式数据类型转换:

技术分享

SELECT TO_CHAR(sysdate,‘yyyy-mm-ddhh:mi:ss) FROM dual;

TO_CHAR(date, ‘format_model‘)

?使用 TO_DATE 函数将字符转换成数字:

TO_DATE(char[, ‘format_model‘])


TO_DATE(‘2012年10月29日08:10:21’,’yyyy“年”mm”月”dd“日”hh:mi:ss’) from dual


?使用TO_NUMBER函数将字符转换成日期:

TO_NUMBER(char[,format_model‘])

TO_NUMBER(1,234,567,890.00’,’L999,999,999,999.99’)from dual


通用函数:

这些函数适用于任何数据类型,同时也适用于空值

?NVL(expr1, expr2)
?NVL2(expr1, expr2, expr3)
?NULLIF(expr1, expr2)
?COALESCE(expr1, expr2, ..., exprn)

将空值转换成一个已知的值:(如果commission_pct为空是,commission_pct为原来的值,为空时,commission_pct为expr2

–NVL(commission_pct,0)

NVL2 (expr1, expr2, expr3) : expr1不为NULL,返回expr2;为NULL,返回expr3


SELECT last_name, salary, NVL(commission_pct, 0),

  (salary*12) + (salary*12*NVL(commission_pct, 0)) AN_SAL

FROM employees;

条件表达式:
–CASE 表达式
–DECODE 函数

CASE expr WHEN comparison_expr1THEN return_expr1

         [WHEN comparison_expr2 THEN return_expr2

          WHEN comparison_exprn THEN return_exprn

          ELSE else_expr]

END


SELECT last_name, job_id, salary,
      CASE job_id  WHEN 'IT_PROG' THEN 1.10*salary
                WHEN 'ST_CLERK' THEN 1.15*salary
                WHEN 'SA_REP'   THEN 1.20*salary
       ELSE     salary 
END    "REVISED_SALARY"
FROM  employees;




select employee_id,last_name,department_id,case department_id when 10 then salary*1.1
                                                              when 20 then salary*1.2
                                                              when 30 then salary*1.3
                                                              end "new salary"
from employees
where department_id in (10,20,30)


SELECT last_name,job_id, salary,

      DECODE(job_id, ‘IT_PROG‘,  1.10*salary,

                      ‘ST_CLERK‘, 1.15*salary,

                      ‘SA_REP‘,   1.20*salary,

                    salary)

      REVISED_SALARY

FROM  employees;



版权声明:本文为博主原创文章,未经博主允许不得转载。

ORACLE 第3节 单行函数

标签:

原文地址:http://blog.csdn.net/u014338577/article/details/47363685

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!