select * from totaltables where 表名 not like '%view%' or 年份 not like '%全部年份%'
这个语句与下面这个语句的效果是一样的,搞不清楚什么怪事了:
select * from totaltables

解决方案 »

  1.   

    条件多余?
      我的本意是从totaltables表中把"表名"字段包含"view"字样的记录
    或者"年份"字段包含"全部年份"字样的记录过滤掉......
    如何写才能正确地去掉符合这两种条件之一的记录过滤掉呢???糊涂了,请大虾指点迷津....3x
      

  2.   

    这句Sql本身没错,是不是你的数据洽好符合这个条件?
      

  3.   

    我的数据也不符合条件啊.
    奇怪的是:
    select * from totaltables where 表名 not like '%view%'
    或者
    select * from totaltables where 年份 not like '%全部年份%'
    单独执行的时候,不管在vb里还是在sql server里都能正确执行.
    ~~~~~~~~
    ~~~~~~~~
      

  4.   

    select * from totaltables where 表名 not like '%view%' or 年份 not like '%全部年份%'
    这个语句与下面这个语句的效果是一样的,搞不清楚什么怪事了:
    select * from totaltables只有当你的“表名”和“年份”同时为'%view%'、'%全部年份%'会有和select * from totaltables有不一样的结果表的逻辑设计有问题,或者是你的限制条件有问题
      

  5.   

    select * from totaltables where (表名 not like '%view%') or (年份 not like '%全部年份%')
    试试
      

  6.   

    谢谢各位大虾热心帮助.
    说来也搞笑,我试着把or换成and,好象结果已经正确了.但是现在确是更加糊涂了....sigh
    如下:
    select * from totaltables where 表名 not like '%view%' and 年份 not like '%全部年份%'
      

  7.   

    呵呵,是你的逻辑有错.不知你是要查什么?
    你原来的语句
    select * from totaltables where 表名 not like '%view%' or 年份 not like '%全部年份%'
    是查找所有表名中不包括'view'或年份中不包括'全部年份'的记录,这样,当表名中除去既包括'view'且年份中包括'全部年份'的记录外的其他记录就是你的结果.
    即包括[表名中不包括'view'但年份有'全部年份'],[年份中不包括'全部年份'但表名中有'view'],[表名不包括'view'且年份中不包括'全部年份']
    而后面的
    select * from totaltables where 表名 not like '%view%' and 年份 not like '%全部年份%'
    是查找表名不包括'view'且年份中不包括'全部年份'的记录,是第一句中的一个子集