解决方案 »

  1.   


    .
    select * from t t1 where not exists (
    select 1 from t t2
    where c1<>0 and c2=0 and c3=0 and c4=0 and c5=0 and t1.c1=t2.c1)
      

  2.   

    确定没负数的话,用加法呢? select * from tbl where field1+field2+.....+fieldN > 0
      

  3.   

    谢谢回复。
    我这个表有近20个字段要全写出来显得很麻烦,有没有简单一点的写法??select * from t 
    where   c2!=0 or c3!=0 or c4!=0 or c5!=0 
    这个效率怎么样??
      

  4.   

       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
      

  5.   

    表数据不多的话就挨个查吧~
    如果数据很大,建议创建冗余字段统计(用触发器维护)
    如: 
    新建col_count,在插入或修改时维护进值,查新就可以 
    select 1 from t t2 where col_count=0谢谢回复。
    我这个表有近20个字段要全写出来显得很麻烦,有没有简单一点的写法??