sql几个常用函数

Oracle:(百度百科查找整理)
1,ROUND()函数为四舍五入函数
   Round(number,[decimals]
   number 待做四舍五入处理的数值
   decimals 指明需保留小数点后面的位数。可选项,忽略它则保留0位小数,精确到个位;为负数,表示为小数点左边四舍五入处理。
   如:ROUND(123.123) ROUND(123.123,2) ROUND(123.16,2) ROUND(123.14,-2) ROUND(163.14,-2)
               123               123.12           123.16               100                 200
               
2,NVL()函数判空
   NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身。但此函数有一定局限,所以就有了NVL2函数。
   拓展:NVL2函数:Oracle/PLSQL中的一个函数,Oracle在NVL函数的功能上扩展,提供了NVL2函数。NVL2(E1, E2, E3)的功能为:
         如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。
   nvl函数可以作用的数据类型:字符类型,日期类型。
   
3,to_timestamp()
    入参: time----BIGING类型,单位为毫秒 ; date----VARCHAR类型,默认格式为yyyy-MM-dd HH:mm:ss
           format----VARCHAR类型,指定输入日期的格式
    功能描述:将BIGINT类型的日期或者VARCHAR类型的日期转换成TIMESTAMP类型
     示例
    测试数据
        timestamp1(bigint)    timestamp2(VARCHAR)     timestamp3(VARCHAR)
          1513135677000        2017-09-15 00:00:00          20170915000000
    测试案例
        SELECT  TO_TIMESTAMP(timestamp1) as var1,
                TO_TIMESTAMP(timestamp2) as var2, 
                TO_TIMESTAMP(timestamp3, 'yyyyMMddHHmmss') as var3
        FROM T1
    测试结果
        var1(TIMESTAMP)             var2(TIMESTAMP)                var3(TIMESTAMP)
    2017-12-13 03:27:57.0      2017-09-15 00:00:00.0         2017-09-15 00:00:00.0
    
    (to_timestamp与to_date函数的区别
      date类型是Oracle常用的日期型变量,时间间隔是秒。两个日期型相减得到是两个时间的间隔,注意单位是“天”。
      timestamp是DATE类型的扩展,可以精确到小数秒(fractional_seconds_precision),可以是 0to9,缺省是6。两个timestamp相减的话,不能直接的得到天数,而是得到,多少天,多少小时,多少秒等。
      举例如下:
      to_date:
      select to_date('2016-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')-sysdate from dual;
      结果:113.307789351862

      to_timestamp:
      select to_timestamp('2016-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')-systimestamp from dual;
      结果:+000000113 07:23:12 743000000
       )
    
4,to_char()
      函数功能,就是将数值型或者日期型转化为字符型。
      如:to_char(timestamp, text)
          把 timestamp 转换成 string
          to_char(timestamp 'now','HH12:MI:SS')

5,LPAD()函数------------RPAD()是从右到左填充

     lpad函数是Oracle数据库函数,lpad函数从左边对字符串使用指定的字符进行填充。从其字面意思也可以理解,l是left的简写,
      pad是填充的意思,所以lpad就是从左边填充的意思。
      LPAD((select (nvl(max(substr(id,9)),0)+1) from MARKETING_BUILDING_REF),4,'0') -----设置一个id号
      语法格式如下:
      语法格式如下:
      lpad( string, padded_length, [ pad_string ] )
        string
        准备被填充的字符串;
        padded_length
        填充之后的字符串长度,也就是该函数返回的字符串长度,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符;
        pad_string
        填充字符串,是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会在string的左边粘贴空格。
   

6,bigDecimal():函数
  Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。
  双精度浮点型变量double可以处理16位有效数。在实际应用中,需要对更大或者更小的数进行运算和处理。
  float和double只能用来做科学计算或者是工程计算,在商业计算中要用java.math.BigDecimal。
  BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,
  而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象
  BigDecimal一共有4个构造方法:
  BigDecimal(int) 创建一个具有参数所指定整数值的对象。
  BigDecimal(double) 创建一个具有参数所指定双精度值的对象。(不建议采用)
  BigDecimal(long) 创建一个具有参数所指定长整数值的对象。
  BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象
  注:当double必须用作BigDecimal的源时,请使用Double.toString(double)转成String,然后使用String构造方法,或使用BigDecimal的静态方法valueOf,
  BigDecimal b1 = new BigDecimal(Double.toString(v1));
  BigDecimal b2 = new BigDecimal(Double.toString(v2));
 
 1,加法运算:---并将结果值转换为double值
  b1.add(b2).doubleValue();
  
  2,减法运算:---
  b1.subtract(b2).doubleValue();
  
  3,乘法运算:---
  b1.multiply(b1).doubleValue();
  
  4,除法运算:(保留小数后两位)
  b1.divide(b2, 2, RoundingMode.HALF_UP));
  
  如:1.35
  对数值取值:
  1.a.setScale(1,BigDecimal.ROUND_DOWN);
  取一位小数,直接删除后面多余位数,故取值1.3.
  
  2.a.setScale(1,BigDecimal.ROUND_UP);
  取一位小数,删除后面位数,进一位,故取值1.4.
  
  3.a.setScale(1,BigDecimal.ROUND_HALF_UP);
  取一位小数,四舍五入,故取值1.4.
  
  4.a.setScale(1,BigDecimal.ROUND_HALF_DOWN);
  取一位小数,五舍六入,故取值1.3.
  
  


7,substr()-字符截取函数
     格式1: substr(string string, int a, int b);

   格式2:substr(string string, int a) ;

     格式1:
        1、string 需要截取的字符串 
        2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
        3、b 要截取的字符串的长度

     格式2:
        1、string 需要截取的字符串
        2、a 可以理解为从第a个字符开始截取后面所有的字符串。
        
8,CONCAT():函数----一般模糊查询拼接字符
    CONCAT(CONCAT('%',%#{参数值}),'%')

    (sql函数具体介绍)阿里云链接地址:https://help.aliyun.com/knowledge_detail/64813.html#h2-u529Fu80FDu63CFu8FF02                                                      

猜你喜欢

转载自blog.csdn.net/qq_34395852/article/details/84282105