表1:Field1                      Field2
1                           0
2                           0
2                           1
3                           0
41                          0
23                          0请教怎样列出所有记录: 对于各个Field1中的值只有Field2中的值仅有0的记录.如果上面的Field1的值为2的记录就不能列出来,因为其Field2中除了有0还有1.
谢谢

解决方案 »

  1.   

    select * from tb where Field1 not in (select Field1 from tb where Field2 <> 0)
      

  2.   

    select *
    from tb1 t
    where
     not exists(select 1 from tb1 where Field1=t.Field1 and Field2=1)
      

  3.   

    select * from tb
     where Field1 not in( 
     select Field1 from tb where Field2!=0) 
      

  4.   

    create table tb(Field1  int,                    Field2 int)
    insert into tb values(1  ,                        0)
    insert into tb values(2  ,                        0)
    insert into tb values(2  ,                        1)
    insert into tb values(3  ,                        0)
    insert into tb values(41 ,                         0)
    insert into tb values(23 ,                         0)
    goselect * from tb where Field1 not in (select Field1 from tb where Field2 <> 0)drop table tb/*
    Field1      Field2      
    ----------- ----------- 
    1           0
    3           0
    41          0
    23          0(所影响的行数为 4 行)
    */
      

  5.   


     select * from tb where Field1 not in (select Field1 from tb where Field2 <> 0)
    有别的解答么?
      

  6.   


    select field1 from tb group by field1 having count(*)<2