zoukankan      html  css  js  c++  java
  • 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分钟处。

  • 相关阅读:
    在Ubuntu中通过update-alternatives切换软件版本
    SCons: 替代 make 和 makefile 及 javac 的极好用的c、c++、java 构建工具
    mongodb 的使用
    利用grub从ubuntu找回windows启动项
    How to Repair GRUB2 When Ubuntu Won’t Boot
    Redis vs Mongo vs mysql
    java script 的工具
    python 的弹框
    how to use greendao in android studio
    python yield的终极解释
  • 原文地址:https://www.cnblogs.com/miracle2020/p/14067968.html
Copyright © 2011-2022 走看看