• SQL中简单函数介绍


    一、字符串函数

    upper和lower和initcap

    作用:对大小写进行转换,大写upper、小写lower、首字母大写initcap

    SQL>select lower('qijiQIJI'),UPPER('QIJIqiji'),INITCAP('lINUX') from dual;

    INSTR查询D在第几个字符

    SQL>select INSTR('1ADSDDSSDSD','D') from dual; 
    
    select INSTR('1ADSDDSSDSD','D',1,2) from dual;   ----从第一个字符开始查起,第2个D在第几个字符

     

     LPAD 以空格从左向右补充字符长

    RPAD 以空格从右向左补充字符长

    SQL>select lpad('what is this',5),lpad('what is this',25),lpad('what is this',25,'-') from dual;   ---用指定的字符串(what is this)从左补齐多少个字符(5个)字符串不够的用-补齐,what is this',5,'-'

     trim 去空格的

    replace 替换

    SQL>select replace('wwwjkdkdddww is ssseess','w','-') 替换结果为 from dual;  ---将w替换成-
    SQL>select replace('wwwjkdkdddww is ssseess','www','http') 替换结果为 from dual;  ---将www替换成http

    二、数字函数

    round 四舍五入函数

    SQL>select round(1.52),trunc(1.32) from dual;
    SQL>select round(1.65222392,2),trunc(1.6672392,3) from dual; ----保留2位小数,保留3位小数

          

    trunc 截断函数,和rount唯一的区别是不进行四舍五入

    mod 求余数操作也叫求模

    三、日期函数

    系统日期(日期格式)

    sysdate和current_date一样,都可以返回系统日期

    SQL>select sysdate from dual;

     系统默认日期格式是日月年,如上,两种办法修改成自己想要的日期格式

    在oracle中,如何让日期显示为“年-月-日-时-分-秒”

      1、在会话级别运行命令 alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS' ;只在会话级别起作用。

      2、在文件$ORACLE_HOME/sqlplus/admin/glogin.sql 中加入alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS',这样每个会话都起作用。

      3、修改初始化参数:alter system set nls_date_format = 'YYYY-MM-DD HH24:MI:SS'

      4、设置环境变量vim .bash_profile 加两行

        export NLS_DATE_FORMAT = "YYYY-MM-DD HH24:MI:SS"

        export NLS_LANG ="AMERICAN_CHINA.ZHS16GBK" 或

        export NLS_LANG ="AMERICAN_AMERICA.ZHS16GBK"  或

        export NLS_LANG ="export NLS_LANG= AMERICAN"

      

    用日期计算

    SYS@hx2> select sysdate +1,sysdate from dual;
    
    SYSDATE+1 SYSDATE
    --------- ---------
    02-DEC-20 01-DEC-20

     

    日期函数

    四、转换函数

    隐式数据类型转换

      将数字存储在字符列,字符类型的字段值应该加上引号。

    显式数据类型转换

    SQL>select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;    ----将sysdate的格式转换为YYYY-MM-DD HH24:MI:SS

    日期格式模板

    时间格式模板

    数字格式模板

    五、嵌套函数

    嵌套函数的计算是从最里层到最外层。

    六、通用函数

    nvl 和 nvl2

    SQL>select Nvl(null,'12') from dual;    ---Nvl(C1,C2),C1为空返回C2,否则返回C1.
    select Nvl2('a','b','c'), Nvl2(null,'b','c') from dual;   ---Nvl2(c1,c2,c3) c1非空返回c2,c1为空返回c3

     NULLIF

    SQL>SELECT NULLIF('A','A'), NULLIF('A','B')FROM DUAL;   ---NULLIF(C1,C2) C1=C2,则返回null,否则返回C1

     COALESCE

    SQL>SELECT COALESCE(0.9*list_price, min_price, 5) FROM DUAL;   ---NULLIF(NULL,'5','6',NULL,'9') 返回第一个非空值。

    七、条件表达式

    case 和 decode

    SQL>Select D.Job,
    Decode(D.Job,'CLERK','c','SALESMAN','S','O'),
    Case When D.Job='CLERK' Then 'C' 
    When D.Job='SALESMAN' Then 'S' End As Lie From Scott.Emp D;

    DECODE 如果D.Job是CLERK则返回C,如果D.Job是SALESMAN则返回S,否则返回O

    CASE 当D.Job是CLERK则返回C,如果D.Job是SALESMAN则返回S,注意后面有END表示结束

    扩展内容:

    1、如何将一个数字转换为字符串并且按照指定格式显示?

    用TO_CHAR 可以用来将DATE 或 NUMBER 数据类型转换成可显示的字符串,格式是TO_CHAR(number_type,format_mask)

     左对齐的就是字符串,右对齐的就是数值类型

    2、如何判断一个字符串是否含有中文字汉子?

    在7号视频的26分钟处。

    3、在oracle中,如何判断一个字符串是否为数字?

    在7号视频的26分钟处。

  • 相关阅读:
    Webdriver API之元素定位
    学生XX码
    网站设计基础
    JS基础知识
    1、变量和基本类型
    网上地址下载图片
    网上地址下载图片2
    微信账号
    INSERT INTO SELECT语句与SELECT INTO FROM语句
    【基础知识】创建匹配游戏
  • 原文地址:https://www.cnblogs.com/miracle2020/p/14067968.html
Copyright © 2020-2023  润新知