select * from t_sample_data where fd_sample_type <> '0'
如果改列的数据为NULL,查询结果中将不包括改记录。
相关说明:
当为null的字段在一条记录的最后,就是说他后边没有非null的字段值时,是不占空间的
当为null的字段在一条记录的中间,就是说他后边还有非null的字段值时,他占一个字节
所以oracle建议在设计表结构时尽量把可空的字段放到最后!
空值不能被索引,所以查询时有些符合条件的数据可能查不出来,
count(*)中,用nvl(列名,0)处理后再查。
--------------------------------------------------------------------------------------------------------------
同理,在Select into 子句中也要考虑NULL情况,如果结果为NULL,那么将抛出
NO_DATA_FOUND的异常。
解决方法:
1. 添加BEGIN..END ..EXCEPTION子句来捕获。
2. 提前count行数;
3. 其他方法?
--------------------------------------------------------------------------------------------------------------
注意这个:NULL的比较只能够通过IS,IS NOT
select 1 from dual where null=null; // 结果NULL
select 1 from dual where nvl(null,0)=nvl(null,0); // 结果1