日期:2014-05-17  浏览次数:20614 次

将不符合要求的数据隐藏
数据库:

ID CD1 CD2 CD3
1 2012-10-1 2012-10-10 2012-10-20
2 2012-11-1 2012-11-10 2012-10-13
3 2012-12-1 2012-10-6 2012-11-14

想要得到的结果:
ID CD1 CD2 CD3
1 2012-10-1 2012-10-10 2012-10-20
2 2012-11-1 2012-10-13
3 2012-10-6

简单来说,就是CD1、CD2、CD3字段中,范围在2012-10-1到2012-11-1之间。一般的SELECT会全部显示出来,有没有方法可以把那些不符合这个范围之内的数据隐藏?或者用其它字符来代替?

------解决方案--------------------
select id,
(case when cd1 between '2012-10-1' and '2012-11-1' then convert(varchar(10),cd1,120 else '' end) as cd1,
(case when cd2 between '2012-10-1' and '2012-11-1' then convert(varchar(10),cd2,120 else '' end) as cd2,
(case when cd3 between '2012-10-1' and '2012-11-1' then convert(varchar(10),cd3,120 else '' end) as cd3
from tb
如果要显示其他字符,则用这些字符代替上面的''.