博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
COALESCE 函数 (将null转换)
阅读量:4961 次
发布时间:2019-06-12

本文共 1150 字,大约阅读时间需要 3 分钟。

  COALESCE函数会依次检查输入的参数,返回第一个不是NULL的参数,只有当传入 COALESCE函数的所有的参数都是NULL的时候,函数才会返回NULL。例如, COALESCE(piName,''),如果变量piName为NULL,那么函数会返回'',否则就会返回piName本身的值。

  下面的例子展示了如何对参数进行检查何初始化。

  Person表用来存储个人的基本信息,其定义如下:

  表1: Person

  

  下面是用于向表Person插入数据的存储过程的参数预处理部分代码:

  SET poGenStatus = 0; SET piName = RTRIM(COALESCE(piName, '')); SET piRank = COALESCE(piRank, 0); -- make sure all required input parameters are not null IF ( piNum IS NULL OR piName = '' OR piAge IS NULL ) THEN SET poGenStatus = 34100; RETURN poGenStatus; END IF;

  表Person中num、name和age都是非空字段。对于name字段,多个空格我们 也认为是空值,所以在进行判断前我们调用RTRIM和COALESCE对其进行处理,然后使用 piName = '',对其进行非空判断;对于Rank字段,我们希望如果用户输入的NULL,我们把它设置成"0",对其我们也使用COALESCE进行初始化;对 于"Age"和"Num" 我们直接使用 IS NULL进行非空判断就可以了。

  如果输入参数没有通过非空判断,我们就对输出参数poGenStatus设置一个确定的值(例子中为 34100)告知调用者:输入参数错误。

  下面是对参数初始化规则的一个总结,供大家参考:

  1. 输入参数为字符类型,且允许为空的,可以使用COALESCE(inputParameter,'')把NULL转换成'';

  2. 输入类型为整型,且允许为空的,可以使用COALESCE(inputParameter,0),把空转换成0;

  3. 输入参数为字符类型,且是非空非空格的,可以使用COALESCE(inputParameter,'')把NULL转换成'',然后判断函数返回值是否为'';

  4. 输入类型为整型,且是非空的,不需要使用COALESCE函数,直接使用IS NULL进行非空判断

转载于:https://www.cnblogs.com/honoir/archive/2013/06/06/3120746.html

你可能感兴趣的文章
我最喜欢的 5 个 Gedit 插件
查看>>
OOoLatex:在 OpenOffice.org 中拔出 Latex 公式
查看>>
linu学习第二天:文件系统相关操作
查看>>
执行了的程序,才是你的程序.
查看>>
在AxureRP8中实现广告文字滚动效果
查看>>
jQuery获取CSS样式中的颜色值的问题
查看>>
struts2.x + Tiles2.x读取多个xml 配置文件
查看>>
Sqlite文件在ubunut的查看
查看>>
表单校验之datatype
查看>>
python第六篇文件处理类型
查看>>
kettle 数据库连接失败
查看>>
ListView失去焦点选中行不能高亮显示的问题解决
查看>>
# jsp及servlet学习笔记
查看>>
Kconfig详解
查看>>
(四)hadoop系列之__hadoop搭建(单机配置)
查看>>
nodejs爬虫数据存入mysql
查看>>
sphinx2.8.8的配置文件
查看>>
Visual Studio 2019 正式版 更新内容
查看>>
4、下行短信发送WebService、下行短信发送服务 -功能详细设计 --短信平台
查看>>
Failure to find com.oracle:ojdbc6:jar
查看>>