首页 > 数据库 >SQL nvl/nvl2 -针对空值的判断计算

SQL nvl/nvl2 -针对空值的判断计算

时间:2023-09-07 09:23:40浏览次数:45  
标签:NULL expr2 expr1 SELECT SQL nvl nvl2

SQL  nvl/nvl2 -针对空值的判断计算

1、nvl 函数 

nvl(expr1, expr2)

如果 expr1 为 NULL,则返回 expr2;否则返回 expr1。 此函数是 coalesce(expr1, expr2) 的同义函数。
参数

  • expr1:一个任意类型的表达式。
  • expr2:一个与 expr1 共享最小共同类型的表达式。

返回:结果类型是参数类型中的最不常见类型。

示例

SELECT nvl(NULL, 20230907);  -- 20230907
SELECT nvl(NULL, '滔Roy');  -- 滔Roy
SELECT nvl('滔Roy', 'Delphi');  -- 滔Roy

2、nvl2 函数

nvl2(expr1, expr2, expr3)

如果 expr1 不是 NULL,则返回 expr2,否则返回 expr3。 此函数是 CASE WHEN expr1 IS NOT NULL expr2 ELSE expr3 END 的同义函数。

参数

  • expr1:一个任意类型的表达式。
  • expr2:一个任意类型的表达式。
  • expr3:一个与 expr2 共享最小共同类型的表达式。

返回:结果是 expr2 和 expr3 的最不常见类型。

示例

SELECT nvl2(NULL, 1, 0);  -- 0
SELECT nvl2('滔Roy', 1, 0); --1

  

  

 

 

创建时间:2023.09.07  更新时间:

标签:NULL,expr2,expr1,SELECT,SQL,nvl,nvl2
From: https://www.cnblogs.com/guorongtao/p/17683968.html

相关文章

  • SQL Server登录账户只能看见自己的数据库(sqlserver设置用户只能查询自己的数据库)
     SQLServer登录账户只能看见自己的数据库(sqlserver设置用户只能查询自己的数据库) 1.新建登录用户以管理员身份登陆数据库(权限最高的身份如sa),点击安全性->登录名,右键新建登录名,输入登录名和密码,取消强制实施密码策略。 2.将服务器角色设置为public  3.将public"......
  • 牛客——SQL254 统计salary的累计和running_total
    描述按照salary的累计和running_total,其中running_total为前N个当前(to_date='9999-01-01')员工的salary累计和,其他以此类推。具体结果如下Demo展示。。CREATETABLEsalaries(emp_noint(11)NOTNULL,salaryint(11)NOTNULL,from_datedateNOTNULL,to_datedate......
  • MySQL系列之主从复制进阶——延时从库、半同步、过滤复制、GTID复制
    目录1.延时从库1.1介绍1.2为什么要有延时从1.3配置延时从库1.4延时从库应用1.4.1故障恢复思路1.4.2故障模拟及恢复2.半同步***2.1半同步复制工作原理的变化2.2配置半同步复制3.过滤复制3.1说明4.GTID复制4.1GTID引入4.2GTID介绍4.3GTID核心参数4.4......
  • MySQL增删改查的基本命令
    1.数据库相关命令1.查看所有的数据库showdatabases;2.查看一个库的基本信息showcreatedatabasedb1;3.创建一个数据库createdatabasedb1;4.删除一个数据库dropdatabasedb1;5.修改库的字符编码alterdatabasecharset='utf8';2.表相关命令1.创建......
  • Django-SQL Injection Vulnerability (CVE-2019-14234)
    复现环境:Vulhub环境启动后,访问http://192.168.80.141:8000即可看到Django默认首页漏洞复现首先登陆后台http://192.168.80.141:8000/admin/,用户名密码为admin、a123123123。登陆后台后,进入模型Collection的管理页面http://192.168.80.141:8000/admin/vuln/collection/:然后......
  • Every derived table must have its own alias(sql语句错误解决方法)
    1、执行下面语句时,报错Everyderivedtablemusthaveitsownaliasselect*from(select*fromjt_noteswherecreateUser='b548323007b647809bb8e4192cf44195'limit0,10)2、解决方案,加一个别名就可以了select*from(select*fromjt_noteswherecreateUs......
  • mysql集合查询
    统计一个班级共有多少学生?selectcount(*)ASnumsfromstudent;统计数学成绩大于90分的学生有多少个?selectcount(*)ASnumsfromstudentwheremath>=90;统计总分大于250分的人数有多少?selectcount(*)ASnumsfromstudentwhere(math+chinese+englist)>250;查看表的创建......
  • mysql修改初始密码详细步骤
    1、查看mysql的初始密码grep'temporarypassword'/var/log/mysqld.log得到的初始密码为:IGj)aTe#g4:(2、进入到mysql里面mysql-uroot-p3、设置密码强度和长度的限制setglobalvalidate_password_policy=LOW;setglobalvalidate_password_length=6;4、修改密......
  • 如何禁用 PHP 报告 SQL 错误?
    要禁用PHP报告SQL错误,可以使用以下两种方法之一:基于运行时设置:使用运行时设置通过更改PHP的错误报告级别来禁用SQL错误报告。可以在PHP脚本的开头或需要禁用SQL报告的地方添加以下代码:error_reporting(error_reporting()&~E_DEPRECATED&~E_NOTICE&~E_STRICT&~E_WARNING&~......
  • mysql将id重新修改为递增
    场景好比我有个配置表:CREATETABLE`config`(`id`intNOTNULLAUTO_INCREMENT,`config_key`varchar(20)NOTNULL,`config_value`varchar(500)NOTNULL,`modified_time`datetimeNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,`crea......