我想知道我是否有可能在存储过程中旋转,而无需直接参考" in in Cro"中的值。
例如,我有一个看起来像:
的枢轴select *
from DailyIncome
pivot (avg (IncomeAmount) for IncomeDay in ([MON],[TUE],[WED],[THU],[FRI],[SAT],[SUN])) as AvgIncomePerDay
是否可以做到这一点,因此可以从以下原因获取结果:
select *
from DailyIncome
pivot (avg (IncomeAmount) for IncomeDay LIKE ('%MON%','%TUE%','%WED%','%THU%','%FRI%','%SAT%','%SUN%')) as AvgIncomePerDay
您应该格式化源数据。
create table tbl (name varchar(10), value int); insert into tbl values ('mon10', 10), ('mon11', 11), ('mon13', 13), ('tue10', 20), ('tue11', 21), ('tue12', 30); GO
6行影响
select * from ( select case when name like '%mon%' then 'mon' when name like '%tue%' then 'tue' end name, value from tbl ) src pivot ( avg(value) for name in ([mon], [tue]) ) pv; GO
星期一|星期二 - :| - : 11 |23
dbfiddle在这里