select sname as 姓名,sex as 性别
from studentcard
where sdept like '[^信息系,数学系,软件工程系]%'
--------------------------------------------
select sname as 姓名,sex as 性别
from studentcard
where sdept not in ('信息系','数学系','软件工程系')
--------------------------------------------------
select sname as 姓名, sex as 性别
from studentcard
where not sdept ='信息系'and not sdept ='数学系'and not sdept ='软件工程系'
-------------------------------------------------------------------------
select sname as 姓名, sex as 性别
from stedextcard
where sdept <>'信息系'and sdept<>'数学系'and sdept <>'软件工程系'有一张表~名为studentcard~要求是查询不在信息系,数学系,和软件工程系的同学的姓名和性别~为什么第1种与2,3,4种查询的结果不同呢?

解决方案 »

  1.   

    自己好好看LIKE 的用法  
      

  2.   

    可能是sdept的数据类型影响, 试用nvarchar
      

  3.   

    like '[信息系,数学系,软件工程系]%'  与后面的条件是不一样的  
      

  4.   

    like '[^信息系,数学系,软件工程系]%' 的意思是只要是字符串前面带有(信息系,数学系,软件工程系)的都会被屏蔽掉;
    sdept not in ('信息系','数学系','软件工程系') 只有这三个会被屏蔽掉
      

  5.   

    []是指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。
    查询分析器找一下帮助!看一下
    用NOT LIKE '信息系%' AND NOT LIKE '数学系%' AND  NOT LIKE '软件工程系%' 看看