表a
a b c d
---------
.......
      p
.......
u v w x
.......
从表a中,选择所有数据,但是除去abc都为空且d='p'的行,还有除去a='u',b='v',c='w',d='x'的行

解决方案 »

  1.   

    SELECT * 
    FROM A
    WHERE
    (D='P' AND LEN(ISNULL(A,''))=0 AND LEN(ISNULL(B,''))=0 AND LEN(ISNULL(C,''))=0)
    OR
    (a='u' AND b='v' AND c='w' AND d='x')
      

  2.   

    SELECT * FROM A WHERE 
    NOT EXISTS(SELECT 1 FROM A WHERE A='' AND B='' AND C='' AND D='P')
    AND NOT EXISTS(SELECT 1 FROM A WHERE a='u' AND b='v' AND c='w' AND d='x')
      

  3.   

    select 
     *
    from
     tb 
    where
     d<>'p' or(a<>'u' and b<>'v' and c<>'w' and d<>'x')
      

  4.   

    都不正确
    一楼输出了     p
    二楼未输出任何东西
    三楼把u v w x输出来了
    我希望的是除了   p 和uvwx,其他的都输出
      

  5.   


    Create table #a
    (
    a varchar(10), 
    b varchar(10),
    c varchar(10),
    d varchar(10)
    )
    insert into #a
    select 'a','b','c','d' union 
    select '','','','P' union 
    select 'a','b','c','P' union
    select 'u','v','w','x' select * 
    from #a 
    where (a!='' OR b!='' OR c!='' OR d!='P')
     and (a!='u' OR b!='v' OR c!='W' OR d!='x')drop table #a