在其他语言(C#,Sql Server)中,我看到:1 + null,或者'1'+ null为null,但在Oracle结果中是:1 || null = 1但是'1'+ null = null。例如:
select 1 || null from dual ;
select '1' + null from dual;
结果:1,null
谁能告诉我为什么?
答案 0 :(得分:4)
Oracle将NULL
和空字符串视为the same thing。
所以1 || NULL
与1 || ""
相同('1'
- 这是SQL中的字符串连接,而不是逻辑OR)。
对于+
,两个参数都转换为数字,任何涉及NULL
的算术运算都会产生NULL
。