Mik*_*sen 6 sql oracle oracle11g
这个问题来自我以前的帖子.
我很好奇为什么:
select * from TPM_USER where '' = ''
Run Code Online (Sandbox Code Playgroud)
但是返回零行:
select * from TPM_USER where 1 = 1
Run Code Online (Sandbox Code Playgroud)
返回表中的每一行.这是根据SQL标准,还是这个Oracle特定的?
Oracle SQL小提琴.
以下工作如预期:
PostgreSQL SQL小提琴
SQL Server SQL小提琴
mySQL SQL小提琴
Oracle不区分空字符串和NULL.
这就是为什么建议的字符串数据类型是VARCHAR2和不是VARCHAR:后者应该做这种区分,但目前没有.
其中三价逻辑SQL用途,NULL = NULL(在Oracle是同义'' = '')的计算结果为NULL(未FALSE但NULL),因此通过滤除WHERE子句.