IF purpose = null THEN
v_purpose := '';
ELSE
v_purpose := ' for ' || purpose;
END IF;
Run Code Online (Sandbox Code Playgroud)
当目的为空时,它仍然会转向其他...为什么?!
正确的测试是
IF purpose IS NULL THEN
Run Code Online (Sandbox Code Playgroud)
这是因为NULL不是存储在字段中的值.它是 关于存储在别处(但在行内)的字段的属性.
将字段设置为NULL普通分配,因此通过直接比较看起来完全正交以期望对其进行测试.但是,为了使它像它一样工作,我推测SQL赋值原语有一个神奇的隐藏方面,它将特殊符号的赋值转移NULL到设置属性而不是字段.
| 归档时间: |
|
| 查看次数: |
299 次 |
| 最近记录: |