• 行列转换的例子


    IF OBJECT_ID('tempdb..#ABC') IS NOT NULL  
    DROP TABLE #ABC  
      
    create table #ABC  
    (  
    ID  INT  
    ,UserID BIGINT    
    ,UserExamID INT   
    ,TestPaperID INT      
    ,QuestionID INT  
    ,AnswerID   INT  
    ,Ctime DATETIME  
    )  
    INSERT INTO #ABC  
    SELECT 1,120629210042331600,1,3,22,49,GETDATE() UNION ALL  
    SELECT 2,120629210042331600,1,3,23,51,GETDATE() UNION ALL  
    SELECT 3,120629210042331600,1,3,24,56,GETDATE() UNION ALL  
    SELECT 4,120629210042331600,1,3,25,62,GETDATE() UNION ALL  
    SELECT 5,120629210042331600,1,3,26,66,GETDATE() UNION ALL  
    SELECT 6,120629210042331600,1,3,27,72,GETDATE() UNION ALL  
    SELECT 7,120629210042331600,1,3,28,77,GETDATE() UNION ALL  
    SELECT 8,120629210042331600,1,3,29,81,GETDATE() UNION ALL  
    SELECT 9,120629210042331600,1,3,30,86,GETDATE() UNION ALL  
    SELECT 10,120629210042331600,1,3,31,90,GETDATE() UNION ALL  
    SELECT 1,120629210011732588,1,3,22,49,GETDATE() UNION ALL  
    SELECT 2,120629210011732588,1,3,23,51,GETDATE() UNION ALL  
    SELECT 3,120629210011732588,1,3,24,56,GETDATE() UNION ALL  
    SELECT 4,120629210011732588,1,3,25,62,GETDATE() UNION ALL  
    SELECT 5,120629210011732588,1,3,26,66,GETDATE() UNION ALL  
    SELECT 6,120629210011732588,1,3,27,72,GETDATE() UNION ALL  
    SELECT 7,120629210011732588,1,3,28,77,GETDATE() UNION ALL  
    SELECT 8,120629210011732588,1,3,29,81,GETDATE() UNION ALL  
    SELECT 9,120629210011732588,1,3,30,86,GETDATE() UNION ALL  
    SELECT 10,120629210011732588,1,3,31,90,GETDATE()    
      
    SELECT * FROM #ABC  
    
    
    DECLARE @s NVARCHAR(4000)  
    SELECT @s = ISNULL(@s + ',', '') +  QUOTENAME(QuestionID)  
    FROM  (select distinct QuestionID from #ABC) as A ---列名不要重复  
      
    Declare @sql NVARCHAR(4000)  
    SET @sql='  
     select r.* from  
    (select UserID,QuestionID,AnswerID from #ABC) as t  
    pivot  
    (  
    max(t.AnswerID)  
    for t.QuestionID in ('+@s+')  
    ) as r'  
       
    EXEC( @sql) 

    如果要消除NULL,可以利用@s构造一个 ISNULL(字段.0) AS [字段]

  • 相关阅读:
    iOS必备知识点
    stringByReplacingOccurrencesOfString
    iPhone X 设计适配指南 & iOS 11 新特性
    block与property
    swift开发笔记04
    category重写系统方法的调用顺序是怎么样的?
    Error: Chunk.entry was removed. Use hasRuntime()错误解决
    李阳音标速成MP3文本
    JavaScript权威指南(第6版)(中文版)笔记
    Idea检入boss项目
  • 原文地址:https://www.cnblogs.com/songr/p/7085971.html
Copyright © 2020-2023  润新知