http://yangtingkun.itpub.net/post/468/245697
SQL> SELECT 1 FROM DUAL WHERE '' = '';
未选定行
SQL> SELECT 1 FROM DUAL WHERE '' IS NULL;
1
----------
1
SQL> SELECT DUMP(''), DUMP(NULL) FROM DUAL;
DUMP DUMP
---- ----
NULL NULL
上面三个SQL语句,任意一个都足以证明空字符串’’就是NULL。
-------
那sql中如果用 name='' 是根本不会返回值的,但是别的数据库这样又是可以的.为了可移植到别的数据库,难道得写成 name ='' or name is null ?? 可是这样逻辑 和 =''又不太一样了..这就要求程序里面把''和null 等同看待.
通过hibernate查询返回的是null,不会有"".
SQL> SELECT 1 FROM DUAL WHERE '' = '';
未选定行
SQL> SELECT 1 FROM DUAL WHERE '' IS NULL;
1
----------
1
SQL> SELECT DUMP(''), DUMP(NULL) FROM DUAL;
DUMP DUMP
---- ----
NULL NULL
上面三个SQL语句,任意一个都足以证明空字符串’’就是NULL。
-------
那sql中如果用 name='' 是根本不会返回值的,但是别的数据库这样又是可以的.为了可移植到别的数据库,难道得写成 name ='' or name is null ?? 可是这样逻辑 和 =''又不太一样了..这就要求程序里面把''和null 等同看待.
通过hibernate查询返回的是null,不会有"".