• Oracle中的sql函数


    1.字符函数

    lower(string) upper() length() substr() replace(字段,src,dest)

    select substr(ename,1,3) from emp;

    从第几个开始,取几个字符

    SQL> select ename from emp;

    ENAME
    --------------------
    tazi
    SMITH
    ALLEN
    WARD
    JONES
    MARTIN

    SQL> select substr(ename,1,3) from emp;

    SUBSTR(ENAME,1,3)
    ------------------------
    taz
    SMI
    ALL
    WAR
    JON

    2.数学函数

    round(n,[m]) 四舍五入,m表示保留几位小数,m为负数则截取到小数点前多少位

    trunc(n,[m]) 截取,m表示保留几位小数

    floor()

    ceil()

    SQL> select mod(10,3) from dual;

    MOD(10,3)
    ----------
             1

    3.日期函数

    oracle默认的日期格式 dd-mm-yy,中文是02-1月-2012

    SQL> select sysdate from dual;

    SYSDATE
    --------------
    03-1月 –12

    addmonths(d,n)

    查找入职8个月以上的员工

    select * from emp where sysdate>add_months(hiredate,8);

    last_day(d)表示d日期所在的月的倒数第一天对应的日期

    查找在一个月的倒数第三天入职的员工

    select ename from emp where hiredate=last_day(hiredate)-2;

    4.转换函数

    把数据按照某种特定的格式显示

    SQL> select ename,to_char(hiredate,'yyyy-mm-dd hh24:mm:ss') from emp;

    ENAME                TO_CHAR(HIREDATE,'YYYY-MM-DDHH24:MM:SS
    -------------------- --------------------------------------
    tazi
    SMITH                1980-12-17 00:12:00
    ALLEN                1981-02-20 00:02:00

    对货币类型的数据格式化

    SQL> desc emp;
    名称                                      是否为空? 类型
    ----------------------------------------- -------- --------------------
    SAL                                                NUMBER(7,2)

    select ename,to_char(sal,'L99,999.99') from emp;  //L表示本地,可以换成’$’等

    ENAME                TO_CHAR(SAL,'L99,999.99')
    -------------------- ---------------------------------
    tazi                            ¥900.00
    SMITH                           ¥800.00
    ALLEN                         ¥1,600.00
    WARD                          ¥1,250.00
    JONES                         ¥2,975.00
    MARTIN                        ¥1,250.00

    99999.99是因为该字段是NUBER(7,2)类型

    显示1980年入职的员工

    SQL> select ename from emp where to_char(hiredate,'yyyy')=1980;  /*Oracle会自动转换类型*/

    ENAME
    --------------------
    SMITH

    SQL> select ename from emp where to_char(hiredate,'yyyy')='1980';

    ENAME
    --------------------
    SMITH

    5.系统函数

    sys_context()

    SQL> select sys_context('USERENV','current_user') from dual;

    SYS_CONTEXT('USERENV','CURRENT_USER')
    -----------------------------------------------------------------

    SCOTT

    select sys_context('USERENV','current_schema')from dual;

    db_name language nls_date_format当前会话的日期格式 host数据库所在主机名

    SQL> select sys_context('USERENV','host') from dual;

    SYS_CONTEXT('USERENV','HOST')
    -------------------------------------------------------

    WORKGROUP\TAZI-PC



     

  • 相关阅读:
    【Vijos-P1285】佳佳的魔法药水-Dijkstra思想
    【NOIP2009提高组T3】最优贸易-双向SPFA
    【NOIP2009提高组T3】最优贸易-双向SPFA
    【Vijos-P1046】观光旅游-Floyd求最小环
    【Vijos-P1046】观光旅游-Floyd求最小环
    【Vijos-P1060】盒子-DP+组合数学
    mysql 结合keepalived测试
    set global read_only=0; 关闭只读,可以读写 set global read_only=1; 开始只读模式
    set global read_only=0; 关闭只读,可以读写 set global read_only=1; 开始只读模式
    -F, --flush-logs
  • 原文地址:https://www.cnblogs.com/tazi/p/2311582.html
Copyright © 2020-2023  润新知