读书人

急简单SQL语句有关问题

发布时间: 2013-10-25 14:36:53 作者: rapoo

急!简单SQL语句问题

--测试数据
create table #table(year varchar(10),sl varchar(10))
insert into #table
select '2008','20.2'

select * from #table

--查询条件2008年和2013年,则查询结果如下
year sl
2008 20.2
2013 0.00
--注:年度查询条件是动态的,可以是任意年的组合
--如果表中不存在该年度,查询条件的年度全部显示出来,sl字段显示为0.00

[解决办法]
把年份作为变量,执行拼接字符串,行不?
[解决办法]

select number,isnull(sl,0.00)sl from master..spt_values a
left join #table b on a.number=b.year
where type='p'
and number in(2008,2013) --这里写条件组合


[解决办法]
create table #table(year varchar(10),sl varchar(10))
insert into #table
select '2008','20.2'
union all select '2012','40.2'
union all select '2013','50.2'

select * from #table


declare @s varchar(1000)
set @s='2008,2013'

select * from #table
where case when @s='' then 1 else CHARINDEX(','+cast(year as varchar)+',',','+@s+',') end>0



[解决办法]
2楼正解。。。。。。
[解决办法]
引用:

select number,isnull(sl,0.00)sl from master..spt_values a
left join #table b on a.number=b.year
where type='p'
and number in(2008,2013) --这里写条件组合


这个应该可以
[解决办法]
二楼牛人,学习了

读书人网 >SQL Server

热点推荐