当前位置:Gxlcms > 数据库问题 > ORACLE 第3节 单行函数

ORACLE 第3节 单行函数

时间:2021-07-01 10:21:17 帮助过:2人阅读

?使用条件表达式
两种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节 单行函数

标签:

人气教程排行