达梦数据库常用函数之三

一、空值判断函数

1.COALESCE(n1,n2,…,nx):返回其参数中第一个非空的值,如果所有参数均为NULL,则返回NULL。如果参数为多媒体数据类型,如TEXT类型,则系统会将TEXT类型先转换为VARCHAR 类型或VARBINARY类型,转换的最大长度为8188,超过部分将被截断。

SELECT COALESCE(NULL,TIME '12:00:00',TIME '11:00:00');

2.IFNULL(n1,n2):当表达式n1为非NULL时,返回n1;若 n1为NULL,则返回表达式n2的值。 若n1与n2为不同数据类型时,DM会进行隐式数据类型转换,若数据类型转换出错,则会报错。  

SELECT IFNULL(NULL,3);

3.ISNULL(n1,n2):当表达式n1为非空时,返回n1;若 n1为空,则返回表达式n2的值。n2的数据类型应能转为n1的数据类型,否则会报错。 

select isnull(null,3);

4.NULLIF(n1,n2):如果n1=n2,返回NULL,否则返回n1。

 select nullif(2,2);

 5.NVL(n1,n2):返回第一个非空的值。若n1与n2为不同数据类型时,DM会进行隐式数据类型 转换,若数据类型转换出错,则会报错。 

6.NULL_EQU(n1,n2):返回两个类型相同的值的比较,当 n1=n2 或 n1、n2 两个值中出现 null 时, 返回 1。类型可以是 INT、BIT、BIGINT、FLOAT、DOUBLE、DEC、VARCHAR、DATE、 TIME、TIME ZONE、DATETIME、DATETIME ZONE、INTERVAL等。 

select null_equ(1,null);

二、类型转换函数 

 1.CAST(value AS type) :将参数 value 转换为 type 类型返回。类型之间转换的相容性如下表所示:表中,“允许”表示这种语法有效且不受限制,“-”表示语法无效,“受限”表示转换还受到具体参数值的影响。 

 SELECT CAST(100.5678 AS VARCHAR(8));

 2.CONVERT(type,value):将参数 value 转换为 type 类型返回。其类型转换相容矩阵与函数 CAST()的相同。

3.HEXTORAW (string):将由string表示的二进制字符串转换为一个binary数值类型。 

SELECT HEXTORAW ('abcdef'); 

4.RAWTOHEX (binary):将RAW类数值binary转换为一个相应的十六进制表示的字符串。binary中的 每个字节都被转换为一个双字节的字符串。 RAWTOHEX和HEXTORAW是两个相反的函数。

 SELECT RAWTOHEX('达梦数据库有限公司'); 

5.BINTOCHAR (binary):将数值binary转换为字符串。 

SELECT BINTOCHAR ('0x61626364');
 

6.TO_BLOB (varbinary):将数值varbinary转换为blob。 

三、其他函数

1.DECODE(exp, search1, result1, … searchn, resultn[,default]):查表译码,DECODE函数将exp与search1,search2, … searchn相比较, 如果等于searchx,则返回 resultx,如果没有找到匹配项,则返回 default, 如果未 定义default,返回NULL。

SELECT DECODE(3, 1, 'A', 2, 'B', 'C');

 2.ISDATE(exp):判断给定表达式是否为有效的日期,是返回1,否则返回0。 

select ISDATE('2020/03/20');

3.ISNUMERIC(exp):判断给定表达式是否为有效的数值,是返回1,否则返回0。

SELECT ISNUMERIC('2a');

4.DM_HASH (exp):根据给定表达式生成HASH值,返回结果为整型。 

 SELECT DM_HASH('DM HASH VALUE');

5.LNNVL(condition):如果condition表达式计算结果值为FALSE或者UNKNOWN时,返回TRUE,计算为TRUE时,则返回FALSE。 

6.LENGTHB(value):返回value的字节数。value为CHAR/VARCHAR/BINARY/VARBINARY/BLOB/CLOB类型的值。

学习函数,有一点体会是在写脚本的时候,你有时会要用到函数,所以学习函数有一定的必要。

 

 

 

 

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值