zoukankan      html  css  js  c++  java
  • SQL2000 和 SQL2005下行列转换示例

    SQL2000 和 SQL2005下行列转换示例 
     

    /*
    --创建 学生成绩表
     
    CREATE TABLE [StuSources] (
     [StuID] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
     [StuName] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
     [KeCheng] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
     [ChengJi] [float] NOT NULL
    ) ON [PRIMARY]
     
    */
     

    /*
    --填充 部分数据
     
    INSERT INTO StuSources
    SELECT '001','张三','语文',81
    UNION SELECT  '001','张三','数学',71
    UNION SELECT  '001','张三','历史',71
    UNION SELECT  '002','李四','语文',82
    UNION SELECT  '002','李四','数学',72
    UNION SELECT  '002','李四','历史',72
     
    */
     
    /*
    -- 一般的直接查询
     
    SELECT * FROM StuSources
     
    -- 结果
    StuID  StuName  KeCheng  ChengJi
    001        张三       历史       71.0
    001        张三       数学       71.0
    001        张三       语文       81.0
    002        李四       历史       72.0
    002        李四       数学       72.0
    002        李四       语文       82.0
     
    */
     
    /*
    -- Sql 2000 下 行列转换
     
    SELECT StuName,
    '语文' = Sum(Case KeCheng WHEN '语文' THEN ChengJi ELSE 0 END ) ,
    '数学' = Sum(Case KeCheng WHEN '数学' THEN ChengJi ELSE 0 END ),
    '历史' = Sum(Case KeCheng WHEN '历史' THEN ChengJi ELSE 0 END )
    FROM StuSources
    GROUP BY StuName
     
    -- 结果
    StuName  语文 数学 历史
    李四       82.0 72.0 72.0
    张三       81.0 71.0 71.0
     
    */
     
    /*
    -- Sql 2005 下 PIVOT 
     
    SELECT StuName,[语文] AS '语文',
    [数学] AS '数学',[历史] AS '历史'
    FROM StuSources s
    PIVOT (SUM (ChengJi) FOR KeCheng IN ([语文],[数学],[历史]) )AS pvt
     
    */
     
     
     
     
  • 相关阅读:
    基于Metaweblog API 接口一键发布到国内外主流博客平台
    uva144 Student Grants
    Uva 10452
    Uva 439 Knight Moves
    Uva 352 The Seasonal War
    switch语句
    java——基础知识
    我的lua学习2
    codeforces 431 D. Random Task 组合数学
    codeforces 285 D. Permutation Sum 状压 dfs打表
  • 原文地址:https://www.cnblogs.com/wenjl520/p/1445782.html
Copyright © 2011-2022 走看看