• Oracle 单行函数


    • 单行函数

    round()      四舍五入

    trunc()       截取

    abs()              求绝对值

    mod()        求余数

    length()     长度

    upper()      全部转化位大写

    lower()       全部转化为小写

    initcap()     全部转化为首字母大写

    lpad()         从左边补全

    rpad()         从右边补全

    ltrim()         从左边截取

    rtrim()         从右边截取

    instr()         查询指定字符串下标

    substr()      获取从指定下标开始的字符串

    replace()     替换

    translate()  转换

    (1). 数字 / 字符 / 字符串操作

      【 返回 'hello''的大写字符串】

           selectupper(‘hello’) from dual;

     【 返回 ''hello'的首字母是大写的字符串】

           selectinitcap(‘hello’)from dual;

      【返回'tianqizhenhao' 该字符串的后7 个字符】

           selectsubstr(‘tianqizhenhao’,-7,7) from dual;

     

    (2).日期操作

    1. 显示41号部门员工 姓名, 进入公司的天数,年数,月份数,星期数【分别加上中文别名】

     select  e.first_name 姓名,

    sysdate -  e.hiredate天数,

    months_between(sysdate,e.hiredate) 月数,

    (months_between(sysdate,e.hiredate))/12年分数

    froms_emp  e

    wheree.deptno = 41;

    -- 2. 显示当前时间

    selectsysdate from dual ;

    (3).转换函数

    【获得当前年份,月份,日期  [ char]】

    select

    to_char(sysdate,'yyyy') 年份,

    to_char(sysdate,'mm') 月份,

    to_char(sysdate,'dd') 日期

    from dual

    • 将当前的时间 转换成 字符串输出【 即 date 类型 转换成 char 类型】

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

    【将'2011-09-12 '  转换成 date 类型】

    selectto_date('2011-09-12','yyyy-mm-dd') from dual

    【 获得字符串 '2011-09-12 ' 的月份】

    select  to_number(to_char( to_date('2010-09-18','yyyy-mm-dd') , 'mm')) from dual

    【获得 8732034.56 用如下形式表示: 8,732,034.56】 

    select  to_char( 8732034.56,'9,999,999.99') from dual

    【获得 8732034.56 用如下形式表示: $8,732,034.56】 

    select  to_char( 8732034.56,'$9,999,999.99') from dual

    decode(A,b,c,d,e,f,g,h)

    如果A=b,输出c;

    如果A=d,输出e;

    如果A=f,输出g;

    如果b,d,f都不满足A,输出h.

     

    【输出显示每个订单编号及支付方式,支付方式要么是现金,要么是信用卡,否则就是未知数。】

           select id,decode(payment_type,'CASH','现金','CREDIT','信用卡','未知数' )

           froms_ord;

    【请把员工工资分为3等,超过2000员的为高等在1500到2000之间的为中等,低于1500的为低等】

    select first_name 员工名

    case

           when salary<1500 then '低等'

           when salary>=1500 and salary<2000 then '中等'

           when salary>=2000 then '高等'

           end 工资等级

    froms_emp;

          

           注意:case后面是否出现列名,取决于when后面条件是否出现比较列

           如果when后面已经出现列名,那case后面务必不能写列名,

           如果when后面是值,那么必须在case后面指定列名,否则无法确定所给的值的真正含义

     

  • 相关阅读:
    App开放接口api安全性—Token签名sign的设计与实现
    查看文件(或文件夹)被哪个进程使用【文件已在另一程序中打开】
    利用递归将数组转码
    h5 定位
    使用OAuth Server PHP实现OAuth2服务
    在Linux上安装jdk,mysql,tomcat的准备工作
    Core Java笔记
    随机森林简介
    Linux 查看操作系统版本
    RNA_seq GATK 最佳实践
  • 原文地址:https://www.cnblogs.com/ty-v/p/7846043.html
Copyright © 2020-2023  润新知