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
Oracle NULL值处理技巧
本文详细介绍了Oracle数据库中NULL值的特殊性质及其处理方法。包括NULL值如何影响查询结果、为何无法被索引,以及如何在SELECT INTO子句中正确处理NULL情况等内容。
5万+

被折叠的 条评论
为什么被折叠?



