请问sql的in语句里可以传空吗?有个查询既需要in里传一些数字也要查询出为空的情况,请问怎么解决啊?thks!

解决方案 »

  1.   

    select * from tb where col in ( null,'')
    这样?
      

  2.   

    SELECT * FROM TB WHERE COL IN ('','OTHER THING') OR COL IS NULL
      

  3.   

    可以啊,但null好像查不出东西来
      

  4.   

    CREATE TABLE #TEST (PJBH CHAR(4),PJMC CHAR(3)) 
    INSERT #TEST 
    SELECT 'A-11',null
    UNION 
    SELECT 'A-12','AAA' 
    UNION 
    SELECT 'A-13',null
    UNION 
    SELECT 'A-14','CCC'
    union 
    select 'B-11',''
    union 
    select 'C-12','DEF'select * from #TEST
    /*
    PJBH PJMC
    A-11 NULL
    A-12 AAA
    A-13 NULL
    A-14 CCC
    B-11    
    C-12 DEF
    */select * from #TEST where pjmc in (null,'')/*
    PJBH PJMC
    B-11    
    */[null值不能用等于来进行筛选,所以不能包含在in里面使用]
    select * from #TEST where pjmc ='' or pjmc is null
    /*
    PJBH PJMC
    A-11 NULL
    A-13 NULL
    B-11    
    */引用别人的例子数据,原谅哈!