select *
from my_table
where '1,2' not in (select cast(a as varchar)+','+cast(b as varchar) from my_table)

解决方案 »

  1.   

    --楼上的,我感觉你理解错了
    select *
    from my_tableselect cast(a as varchar)+','+cast(b as varchar) from my_tableselect *
    from my_table
    where '1,2'  in 
    (select cast(a as varchar)+','+cast(b as varchar) from my_table)
    --楼主,我还没看过你说的这种写法.
      

  2.   

    select *
    from my_table t
    where a<>1 and b<>2
      

  3.   

    我觉得 womangran(我茫然) 理解是对的,只不过它的方法是错的!我理解的是:楼主需要查询出所有的纪录,但是不需要这样的纪录(a=1,b=2)
    但是楼主反过来了,你这样写法,只要存在(a=1,b=2)的纪录,永远都是空的,因为not in 不成功,另外你的(1,2) not in (select a,b from my_table)肯定是错的,不知道你从哪里学来的语法:
    我用我的表资料---a测试:
    select * from a
    /*
    a_nam      a_add      
    ---------- ---------- 
    1          aa
    1          bb
    2          cc
    2          vv
    2          kk(5 row(s) affected)
    */
    select * from a
    where (a_nam +',' +  a_add) not in  ('1,aa')
    /*
    a_nam      a_add      
    ---------- ---------- 
    1          bb
    2          cc
    2          vv
    2          kk(4 row(s) affected)*/
    改为下面2个也可以:
    select a_nam + a_add from a
    where (a_nam +',' +  a_add) <>  ('1,aa')select * from a
    where a_nam <> '1' and a_add <> '2' 
    /*
    a_nam      a_add      
    ---------- ---------- 
    2          cc
    2          vv
    2          kk(3 row(s) affected)
    */
    答案都是a_nam = 1,b_nam=aa的纪录不出来FYI