表A,有字段A1,A2,A3,A4,A5,A6,
有很多条数据,其中 A4的值由 1 ,2 ,3 和空值组成(A4是字符类型的)
现在如何能查询出表A中除了包含非空值以外的其他所有记录
也就是查询结果要排除 A4的值为 1,2,3的记录
直接select * from a where a4 not in ('1','2','3') 结果查不出一条数据 高手帮帮忙 最好能解释下为什么 谢谢 
再问一下,如果做一个项目,用oracle存储过程来实现,但要用到很多临时表,最后根据这些临时表来勾连成一张大的实际报表,请问有什么比较好的方法来处理吗。
现在有两种方法
1.把表结构都建好,然后直接往临时表里插数据,如果不在同一用户下,还要授权,有些麻烦 2.通过动态SQL语句来实现,直接 create table a as select * from b where ....各位大侠 还有没有比上面两种方法好的处理方法吗 谢谢 大家 讨论 

解决方案 »

  1.   

    空值,只能用is null和is not null才能判断,其他的都是返回false
      

  2.   

    现在有两种方法 
    1.把表结构都建好,然后直接往临时表里插数据,如果不在同一用户下,还要授权,有些麻烦 2.通过动态SQL语句来实现,直接 create table a as select * from b where .... 各位大侠 还有没有比上面两种方法好的处理方法吗 ---
    用视图解决,不占用存储空间
    NULL值用 is null or is not null
      

  3.   

    select * from a where a4 is null;
      

  4.   

    NULL值用 is null or is not null 
    好像可以用  != ‘  ’
      

  5.   

    select * from a where a4 is null;