当前位置:知识问问>生活百科>sql中nullif函数什么意思

sql中nullif函数什么意思

2023-12-16 02:06:59 编辑:join 浏览量:567

sql中nullif函数什么意思

功能比较 expr1 和 expr2 的值,若二者相等,则返回 NULL,否则返回扮手雀 expr1 的值。其中 expr1 不能为 NULL。NULLIF 函数在逻辑上相当于下面的 CASE 语句:CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END举例SQL> select nullif('yct','tyc') from dual; NUL---yct SQL> select nullif('yct','yct') from dual; NUL---expr1 和 expr2 的类型必厅早须一致,否则会提示错误,因为无法比较二者是否相等:SQL> select nullif('yct',sysdate) from dual;select nullif('yct',sysdate) from dual *ERROR 位于第 1 行:ORA-00932: 不一致的数据类型: 要求 CHAR 得到的却是 DATE当 expr1 为 NULL 时,该函数提示错误:SQL> select nullif(null,'adf') from dual;select nullif(null,'adf') from dual *ERROR 位于第 1 行:ORA-00932: 不一致的数据类型薯正: 要求 - 得到的却是 CHAR这里没有明确提示 expr1 不能为 NULL,而是说类型不一致。那么换成一致的类型呢:SQL> select nullif(null,null) from dual;select nullif(null,null) from dual *ERROR 位于第 1 行:ORA-00932: 不一致的数据类型: 要求 - 得到的却是 CHAR仍然会有这样的提示,不太明确。总之,expr1 是不能为 NULL 的。下面的这个例子中,将查询哪个员工换了工作。表 job_history 中存储员工的历史工作记录,表 employees 中存储员工当前的工作记录: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_VPHartstein MK_MANKaufling ST_MANKochhar AD_VPKochhar AD_VPRaphaely PU_MANTaylor SA_REPTaylorWhalen AD_ASSTWhalen

标签:sql

版权声明:文章由 知识问问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.zhshwenwen.com/life/324091.html
热门文章