SELECT * FROM TABLE T WHERE T.NO NOT IN(1`,12,37,14,20,29,33,44,56,73,87,...,99);
表TABLE的字段NO的数值从1到100,这个是否可以优化,谢谢?

解决方案 »

  1.   

    --如果能明确是1-100,中间不间断,则可如下:
    SELECT * FROM TABLE T WHERE T.NO NOT between 1 and 100--如果不能明确,则建议将这些数据插入到一个表中,例如TB,列名为ID
    select t.* from table t where not exists(select 1 from tb m where t.id = m.id)
    select t.* from table t where id not in (select id from tb)
      

  2.   

    谢谢上面两位兄弟,
    1、首选字段NO的值是从1至100;
    2、WHERE中T.NO条件不是有规律的,不同的要求导致条件也会相应的变化,所以2楼建议的插入到一张表中并不合适;
    如果这样是否还可以优化,再次感谢!