请教sqlserver2008 行转列的SQL语法
发布网友
发布时间:2022-04-08 10:13
我来回答
共3个回答
热心网友
时间:2022-04-08 11:42
此解甚好:
SELECT
SUM ( CASE WHEN 时间 = '2012-11' THEN 1 ELSE 0 END ) AS [2012-11],
SUM ( CASE WHEN 时间 = '2012-12' THEN 1 ELSE 0 END ) AS [2012-12]
FROM
表
热心网友
时间:2022-04-08 13:00
SELECT
SUM ( CASE WHEN 时间 = '2012-11' THEN 1 ELSE 0 END ) AS [2012-11],
SUM ( CASE WHEN 时间 = '2012-12' THEN 1 ELSE 0 END ) AS [2012-12]
FROM
表
如果要动态的产生 [2012-01] .....[2013-01] 这种情况的话, 需要写存储过程, 用动态 SQL 来处理了。
热心网友
时间:2022-04-08 14:35
declare @sql nvarchar(max)
select @sql=isnull(@sql+'],[','[')+时间 from A group by 时间
set @sql=@sql+']'
set @sql='select * from A pivot (count(门店) for 时间 in ('+@sql+')) as X'
select @sql
exec(@sql)