table1
 a   b(varchar)        c(varchar)     d(varchar)      e(varchar)
--   200701
--                      200701
b,c,d,e 都是日期格式格式為:200701
我想查出table中数据
查询条件是 20070101--20070131
条件是 b 不为空时 查处符合输入条件的数据
如果b 为空时 查处c
如果c 为空 查询d谢谢大家!

解决方案 »

  1.   

    select *
    from table1
    where COALESCE(b,c,d,e) between '20070101' and '20070131' 
      

  2.   


    declare @tab table (a varchar(10),
                        b varchar(10),
                        c varchar(10),
                        d varchar(10))
    Insert into @tab
    Select '1','200701','200701','200701'
    union
    select '2','','','200701'
    Select * From @tab 
    Where b between left('20070101',6) and left('20070131',6)union allSelect * From @tab
    Where c between left('20070101',6) and left('20070131',6) and b = ''union all
    Select * From @tab
    Where d between left('20070101',6) and left('20070131',6) and c = '' and b = ''