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 all
Select * 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 = ''