CREATE TABLE #TEMP
(
X INT,
Y INT
)
DECLARE @X INT SET @X = 1
DECLARE @Y INT SET @Y = 1
DECLARE @MAX INT SET @MAX = 100
WHILE(@X <= @MAX)
BEGIN
WHILE(@Y <= @MAX)
BEGIN
INSERT INTO #TEMP (X,Y)
SELECT @X,@Y
SET @Y = @Y + 1
END
SET @Y = 1
SET @X = @X + 1
END
SELECT X,Y,CONVERT(VARCHAR,X) + ' * ' + CONVERT(VARCHAR,Y) + ' = ' + CONVERT(VARCHAR,X*Y ) XY INTO #TEMP1 FROM #TEMP
DECLARE @SqlSubject NVARCHAR(4000)
SELECT @SqlSubject= STUFF((SELECT ','+'['+ CONVERT(VARCHAR,X) +']' FROM (SELECT DISTINCT X FROM #TEMP1) T ORDER BY X FOR XML PATH('')),1,1,'') -- 获取PIVOT科目
DECLARE @SqlPIVOT NVARCHAR(4000)='SELECT * FROM #TEMP1 PIVOT(MAX(XY) FOR X IN('+@SqlSubject+')) T' -- 拼接PIVOT
PRINT @SqlPIVOT
EXEC (@SqlPIVOT)
DROP TABLE #TEMP
DROP TABLE #TEMP1