当前位置: 代码迷 >> Sql Server >> 能不能动态选择列,该怎么解决
  详细解决方案

能不能动态选择列,该怎么解决

热度:90   发布时间:2016-04-24 09:03:02.0
能不能动态选择列
如题,我有一张表里面放着一些年度的数据 字段名是当年的年份,

项目   2009    2010  2011  2012  2013
KPI    XXX        XXX    XXX    XXX     XXXX
ROI   XXX        XXX    XXX    XXX     XXXX
UPT XXX        XXX    XXX    XXX     XXXX


现在我有用户传入一个变量,比如@year ='2009'
那么我就要显示   select  [2009] from TABLE
可我要动态的,即根据 @YEAR,显示不同列,我本来以为 select quote_name (@year) from TABLE 可以,可发现不行。
希望各大神带我飞,告诉我怎么解决


------解决思路----------------------
EXEC('select quote_name ['+@year+'] from [TABLE]')

------解决思路----------------------
declare @year varchar(10)

select case @year when '2009' then C2009 
                  when '2010' then C2010
                  when '2011' then C2011
        end 
from mytable 
        

------解决思路----------------------
动态SQL如1楼
  相关解决方案