NVL的定义

NVL(s1, s2):当s1为null时,返回s2,否则返回s1

SELECT NVL('S', 'R') FROM DUAL;   -- S
SELECT NVL(NULL, 'R') FROM DUAL;  -- R

NVL方法的兼容策略

第一种:用 case when 代替 NVL,这种方法代码改造量较大,但胜在一劳永逸,且兼容大部分数据库。

NVL(str1, str2)
CASE WHEN str1 IS NULL THEN str2 ELSE str1 END

第二种:在MySQL数据库创建NVL函数,这种方法无需改动代码,能快速实现兼容。

  • 第一种
create function nvl(str1 varchar(4000), str2 varchar(4000))
returns varchar(4000) deterministic
return coalesce(str1, str2);
  • 第二种
create function nvl(str1 varchar(4000), str2 varchar(4000))
returns varchar(4000) deterministic
return ifnull(str1, str2);
  • 第三种
create function nvl(str1 varchar(4000), str2 varchar(4000))
returns varchar(4000) deterministic
return CASE WHEN str1 IS NULL THEN str2 ELSE str1 END;

b

MySQL中创 NVL 函数相关推荐

  1. mysql中自定义nvl函数

    CREATE FUNCTION NVL(v1 datetime,v2 datetime) RETURNS datetime BEGINRETURN(ifnull(v1,v2)); END

  2. MySQL中的组函数(聚合函数)

    MySQL中的组函数(聚合函数) 组函数操作行集,给出每组的结果.组函数不象单行函数,组函数对行的集合进行操 作,对每组给出一个结果.这些集合可能是整个表或者是表分成的组. 一.组函数与单行函数的区别 ...

  3. oracle怎么声明nvl函数,[转载]Oracle中的NVL函数

    Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数.主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以. 下面简 ...

  4. hive中的nvl函数

    hive中的nvl函数为判断是否为空值,和oracle判断空值使用的函数一致.nvl叫做空值转换函数. NVL函数的格式如下:NVL(expr1,expr2) 在mysql和sqlsever中分别使用 ...

  5. mysql ifnull 无效_关于MySql中使用IFNULL()函数失效的问题。

    今天在学习时,碰到一个问题:在联表查询取得结果后,如果取得的结果是空值,则给一个默认值,如果不是空值,则返回这个值. 下面我们来看看业务场景: 在menu表中: 存储的是前端页面的菜单配置,注意成员权 ...

  6. MySQL中的IFNULL函数和IF函数

    MySQL中的IFNULL函数类似于Oracle中的NVL函数,其表达式为:IFNULL(expr1,expr2),含义是:如果第一个参数不为空,则返回第一个参数,否则返回第二个参数. IF(expr ...

  7. oracle迁移mysql视图中函数问题,mysql中to_char自定义函数。

    迁移到mysql中会遇到函数迁移问题,我们可以自定义函数 DELIMITER $$ CREATE FUNCTION new_data_report.to_char(Intnumber int) RET ...

  8. MySQL中的UNIX_TIMESTAMP函数使用总结

    转载自:http://www.cnblogs.com/hongfei/archive/2012/06/08/2541599.html MySQL中的UNIX_TIMESTAMP函数有两种类型供调用 1 ...

  9. Sql Server中实现Mysql中的group_concat函数效果

    Sql Server中实现Mysql中的group_concat函数效果 SELECT oi.*, stuff((select ','+convert(varchar(25), GuestName) ...

最新文章

  1. ISE下载到FPGA内的文件格式
  2. Android异步消息处理机制
  3. go map的定义和使用 键值对存储
  4. UVa 10420 List of Conquests
  5. 二、Netty服务端/客户端启动整体流程
  6. 有关 Oracle redo log
  7. 【AngularJS】—— 2 初识AngularJs(续)
  8. jenkins的JAVA简单顺序配置git仓库
  9. openlayers5之热力图heatmap
  10. Silverlight 2 控件 SDK 源代码
  11. java jmenu 监听_Java中用得比较顺手的事件监听
  12. 【less-2】sqli-labs靶场第二关
  13. 网信办拟规定:平台未经用户同意不得强制订阅关注账号;Twitter回应大范围宕机;Krita 4.4.0发布|极客头条
  14. 关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT、L
  15. 大容量内存的电脑提速技巧
  16. selenium-窗口切换
  17. UBUNTU设置SSH通过密钥登陆
  18. 尚硅谷springSecurity笔记
  19. 利用Chrome与迅雷下载斗鱼录播视频
  20. 圆周率π的近似计算(三)-MapReduce分布式计算入门

热门文章

  1. 计算机课真是太有趣了的英文翻译,英语翻译_“真是太好笑了”英文说法大全_沪江英语...
  2. 爬虫入门经典(八) | 一文带你快速爬取股吧
  3. 一个可以重复遍历的RowSet
  4. 查看oracle是否开闪回,开启 oracle 的闪回功能
  5. 注释及Scriptlet
  6. y7000 联想的bios怎么进入
  7. 如何修改git仓库的账号,密码???
  8. 安卓手机用WIFI无线调试adb
  9. linux笔记本无法识别显示器,为了解决笔记本外接显示器导致Ubuntu显示异常的问题,我做了这么多事情......
  10. telnet-server