Simplify Dynamic SQL Pivot Table

后端 未结 2 536
旧巷少年郎
旧巷少年郎 2020-12-21 22:48

I have written a Dynamic Pivot Table Query based on the following. Here is a SQL FIDDLE for reference.

CREATE TABLE TestTable1 ([idnumber] INT, [DataTypeId]         


        
2条回答
  •  隐瞒了意图╮
    2020-12-21 23:32

    Try replacing it with this.

    SET NOCOUNT ON
    IF OBJECT_ID('TestTable1') IS NOT NULL
    DROP TABLE TestTable1
    GO
    
    CREATE TABLE TestTable1 ([idnumber] INT, [DataTypeId] INT)
    GO
    
    INSERT INTO TestTable1 VALUES 
    (1, 108),(1, 108),(1, 108),(2, 108),(2, 108),
    (3, 108),(1, 109),(1, 109),(1, 110),(2, 110),
    (1, 111),(4, 108),(4, 108),(4, 110),(4, 111)
    
    DECLARE
        @AllColumns NVARCHAR(MAX)
    
    SELECT @AllColumns = ''
    
    SELECT @AllColumns = @AllColumns +
      '[' + CAST(DataTypeId as NVARCHAR)+'],' 
    FROM TestTable1
    GROUP BY DataTypeId
    
    
    SET @AllColumns = LEFT(@AllColumns,LEN(@AllColumns)-1)
    PRINT @AllColumns
    

提交回复
热议问题