zoukankan      html  css  js  c++  java
  • 行列转换的例子

    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 [字段]

  • 相关阅读:
    一、汇编基础知识
    PHP RabbitMQ消息队列演示代码
    PHP CentOS下安装PHP及部署ThinkPHP
    MySQL CentOS下安装MySQL
    ThinkPHP 对接支付宝支付接口
    ThinkPHP 获取当前页面完整的URL地址
    前端 Validform.js属性,用法及Ajax提交简介
    PHP 配置Xdebug调试工具
    ThinkPHP 原生分页功能改进,更好用更美观
    ThinkPHP 使用第三方phpmailer库发送邮件
  • 原文地址:https://www.cnblogs.com/songr/p/7085971.html
Copyright © 2011-2022 走看看