zoukankan      html  css  js  c++  java
  • 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后面指定列名,否则无法确定所给的值的真正含义

     

  • 相关阅读:
    【转】Linq Group by
    SmtpClient发邮件时为什么用MailMessage.From而不用MailMessage.Sender
    HttpClient异步调用WEB服务
    WPF MVVM框架下,VM界面写控件
    WPF 后台读取样式文件
    vs2017 乱码
    ClickOnce 和管理员权限
    EF code first Mysql 更换主键类型
    Linq Group By
    Mvc api HelpPage 与注释
  • 原文地址:https://www.cnblogs.com/ty-v/p/7846043.html
Copyright © 2011-2022 走看看