to armyyd(不会游泳的猫):
但是这两句检索出的记录不一样。
但是这两句检索出的记录不一样。
解决方案 »
- ORACLE 初级问题
- oracle中if判断语句在线求解,对的话追加分
- oralce优化:两个触发器 与 一个触发器+过程 对比谁快??
- 求一个字符串的解析SQL或者正折表达式
- 请问如何更改已存在表的列名??
- 索引中丢失in或out参数?
- Oracle所占空间为什么会慢慢变得很大?
- pl/sql写文件的问题!utl_file.fopen创建文件总是失败,说是目录无效。
- 我用SQL*Plus连接数据ORACLE数据库时,报错:ORACLE not available
- 请问Oracle 8i 的Trigger中是否不支持动态SQL?急急急
- 怎么打开一个以.MB结尾的MB类型数据文件,好急
- 在ORACLE中怎样计算其需求量。如生产A需要零件X、Y、Z、L、M、N各是几个!
oracle 里面 '' = null ,空格就不等于null了
try:
SELECT * FROM TEST
WHERE NVL(COLNAME,'')=trim(' ') ;
不会自动trim的。
第二句 左边是一个空格 右边是两个空格 ,但这样就不相等了,为什么?
在ORACLE里面,一个空格可以等于任意个空格SELECT * FROM TEST
WHERE ' '=' '
这一句可以查出全部的数据
SELECT * FROM TEST
WHERE ' '=' ' <-------这样是成立的.
这一句可以查出全部的数据
看下面的测试:
SQL> desc testa;
Name Type Nullable Default Comments
---- ------------- -------- ------- --------
ID NUMBER Y
NAME VARCHAR2(100) Y SQL> select * from testa; ID NAME
---------- -----------------------------------
2
2
1 tSQL> select length(a.name) from testa a;LENGTH(A.NAME)
--------------
1
1
1SQL> select ascii(a.name) from testa a ;ASCII(A.NAME)
-------------
32 <---表中有空格
32
116SQL> select * from testa a where a.name=' '; <--这里是两个空格, ID NAME
---------- -----------------------------SQL>
--说明一个空不等于两个空.