当我只有一个限定条件时候可以正常实现,
SELECT EMPNAME,DEP from empdep WHERE dep = '" & CurUser & "' and   EMPNAME NOT IN ("'a','b','c' ") ORDER BY DEP 但是我多加了一个条件后就不能正常实现了:
SELECT EMPNAME,DEP from empdep WHERE dep = '" & CurUser & "' OR dep = '驾驶班' and   EMPNAME NOT IN ("'a','b','c' ") ORDER BY DEP 

解决方案 »

  1.   

    SELECT EMPNAME,DEP from empdep WHERE ( dep = '" & CurUser & "' OR dep = '驾驶班') and EMPNAME NOT IN ("'a','b','c' ") ORDER BY DEP 
      

  2.   

    先改成SELECT EMPNAME,DEP from empdep WHERE (dep = '" & CurUser & "' OR dep = '驾驶班') and EMPNAME NOT IN ("'a','b','c' ") ORDER BY DEP 看看结果对不对。
      

  3.   

    and 的默认优先级 比or高,你的句子,将会
    先执行dep = '驾驶班' and EMPNAME NOT IN ("'a','b','c' ")
    再执行 dep = '" & CurUser & "' OR 所以满足 dep = '" & CurUser & "'的就会提出来语句里有or的时候注意一下要表达的意思,是谁和谁要or了,把它们用括号括起来。
      

  4.   

    SELECT EMPNAME,DEP from empdep WHERE ( dep = '" & CurUser & "' OR dep = '驾驶班') and EMPNAME NOT IN ("'a','b','c' ") ORDER BY DEP对查询条件进行分组,or and等连接符貌似有优先级的
      

  5.   

    这样试试!最好加上N
    SELECT EMPNAME,DEP from empdep WHERE (dep = '" & CurUser & "' OR dep = N'驾驶班') and EMPNAME NOT IN ("'a','b','c' ") ORDER BY DEP 
      

  6.   

    SELECT EMPNAME,DEP 
    from empdep WHERE (dep = '" & CurUser & "' OR dep = '驾驶班') 
    and EMPNAME NOT IN ("'a','b','c' ") 
    ORDER BY DEP
      

  7.   

    关系型运算符优先级高到低为:not and or问题的解决办法是:用()来改变执行顺序...
      

  8.   

    not ,and ,or优先级不同.
    得用括号改变优先级.
    你的意思是不是
    ( dep = '" & CurUser & "' OR dep = '驾驶班') and (EMPNAME NOT IN ("'a','b','c' ")) ORDER BY DEP 
    加了两个括号
      

  9.   

    好像不是not in的关系。应该是单引号的错吧。
      

  10.   

    SELECT EMPNAME,DEP from empdep WHERE (dep = '" & CurUser & "' OR dep = '驾驶班') and EMPNAME NOT IN ('a','b','c' ) ORDER BY DEP