DB2数据库常用的函数总结

CONCAT
>>-CONCAT-------(--expression1--,--expression2--)--------------><
功能:将两个字符串连接起来,如果两个参数中,有任一为null,则返加null。

例:
values(CONCAT('cxccxd','tttt'))  返回:cxccxdtttt

TO_CHAR
>>-TO_CHAR--(--timestamp-expression--,format-string--)---------><
同VARCHAR_FORMAT.函数用法相同

TO_DATE
>>-TO_DATE--(--string-expression--,format-string--)------------><
同TIMESTAMP_FORMAT函数用法相同
---------------------

SUBSTR
>>-SUBSTR--(--string--,--start--+-----------+--)---------------><
                                '-,--length-'
功能:从string串中,start指定的位置取length长度的字符串
---------------------

SPACE
>>-SPACE--(--expression--)-------------------------------------><
功能:返回参数指定数量的空格字符,最大不能超过4000个字符
参数:SMALLINT or INTEGER类型

SQRT
>>-SQRT--(--expression--)--------------------------------------><
功能:返回平方根,结果为double-precision floating-point类型
参数:内置数值类型
例:
VALUES (SQRT (400))  返回:20
---------------------

SIGN
>>-SIGN--(--expression--)--------------------------------------><
功能:返回标记-1、0、1,判断参数是负数、0、还是正数,如果为负数则返加-1,如果为0,则返回0,如果为正数,则返回1
参数:要求为内置数值类型。
例:
VALUES (sign(2.5))  返回:1
VALUES (sign(0))      返回:0
VALUES (sign(-254))  返回:-1

---------------------

VALUE函数 

语法:VALUE(EXPRESSION1,EXPRESSION2) 
VALUE函数是用返回一个非空的值,当其第一个参数非空,直接返回
该参数的值,如果第一个参数为空,则返回第一个参数的值。 
SELECT VALUE(ID,'') FROM T1  
表示如果T1.ID为空,则返回空串,如果T1.ID不为空,则返回T1.ID。

NVL函数是一个空值转换函数

NVL(表达式1,表达式2)

如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。
该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是数字型、字符型和日期型。但是表达式1和表达式2的数据类型必须为同一个类型。

  • 对数字型:NVL( a,0);
  • 对字符型:NVL(TO_CHAR(a), 'zifeiy')
  • 对日期型:NVL(mydate,'31-DEC-99')
    • 1. 输入参数为字符类型,且允许为空的,可以使用COALESCE(inputParameter,'')把NULL转换成'';
      2. 输入类型为整型,且允许为空的,可以使用COALESCE(inputParameter,0),把空转换成0;
      3. 输入参数为字符类型,且是非空非空格的,可以使用COALESCE(inputParameter,'')把NULL转换成'',然后判断函数返回值是否为'';
      4. 输入类型为整型,且是非空的,不需要使用COALESCE函数,直接使用IS NULL进行非空判断。
      5.对''值的处理,' '或''在数据库中不是NULL而是空格存在需要使用 = ' '验证[color=red][/color
    • 方法1:row_number()函数
      select * from 
      (
      select a.*,row_number() over(partition by 分组字段 order by 排序字段) rn from 表名;
      

      ) b where rn = 1

posted @ 2019-05-21 16:16  Adam*DI  阅读(1196)  评论(0编辑  收藏  举报