Nullif 函数
语法
NULLIF(expr1, expr2)

用途
- 函数功能:比较两个参数expr1和expr2的值是否相等;
- 如果相等,则函数返回NULL,如果不等,函数返回expr1的值;
- 逻辑上和以下的case表达式相同
CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END
例子
官方示例,通过函数NULLIF(e.job_id, j.job_id)来判断2个job id是否相同,一样就返回null,不同,就返回employees表的job id;
原文说明如下:
The following example selects those employees from the sample schema hr who have changed jobs since they were hired, as indicated by a job_id in the job_history table different from the current job_id in the employees table
current job_id in the employees,就是说employees表中是当前最新的jobid,当两个jobid不等的时候返回的是employees表中的jobid,那么示例语句中的别名为什么定义成了"Old Job ID",不知道有没有大佬可以解惑一下,是不是我哪里理解错了。
SELECT e.last_name, NULLIF(e.job_id, j.job_id) "Old Job ID"
FROM employees e, job_history j
WHERE e.employee_id = j.employee_id
ORDER BY last_name;
LAST_NAME Old Job ID
------------------------- ----------
De Haan AD_VP
Hartstein MK_MAN
Kaufling ST_MAN
Kochhar AD_VP
Kochhar AD_VP
Raphaely PU_MAN
Taylor SA_REP
Taylor
Whalen AD_ASST
Whalen
注意事项
老生常谈,还是要保持数据类型一致哦;
参考文档
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions102.htm
最后修改时间:2021-08-14 16:22:38
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




