DECLARE @sql_str VARCHAR(8000)
DECLARE @sql_col VARCHAR(8000)

SELECT @sql_col = ISNULL(@sql_col + ',','') + QUOTENAME([indicator]) FROM [sizelist] GROUP BY [Indicator]

SET @sql_str = '
SELECT * FROM (
SELECT [Country],[gender],sku,[indicator],[sizename] FROM [sizelist]) p PIVOT
(max([sizename]) FOR [indicator] IN ( '+ @sql_col +') ) AS pvt
ORDER BY pvt.[Country]'
PRINT (@sql_str)
EXEC (@sql_str)

 

 

 

另外使用SQL方式

DECLARE @sql VARCHAR(8000)
SET @sql = 'SELECT [Name],'
SELECT @sql = @sql + 'SUM(CASE [Subject] WHEN '''+[Subject]+''' THEN [score] ELSE 0 END) AS '''+QUOTENAME([Subject])+''','
FROM (SELECT DISTINCT [Subject] FROM [student2]) AS a



SELECT @sql = LEFT(@sql,LEN(@sql)-1) + ' FROM student2 GROUP BY Name'
PRINT(@sql)
EXEC(@sql)
GO

相关文章:

  • 2022-02-21
  • 2022-12-23
  • 2021-12-28
  • 2021-10-13
  • 2021-10-31
  • 2021-11-19
  • 2021-07-01
猜你喜欢
  • 2021-08-13
  • 2022-12-23
  • 2022-03-13
  • 2021-08-13
  • 2022-01-12
  • 2022-12-23
  • 2021-07-30
相关资源
相似解决方案