SQL Server Pivot使用类似In



我想知道我是否有可能在存储过程中旋转,而无需直接参考" 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在这里

最新更新