zoukankan      html  css  js  c++  java
  • SQL 行列互换 天高地厚

    一、行转列

    1、建立表格

    ifobject_id('tb')isnotnulldroptabletb

    go

    createtabletb(姓名varchar(10),课程varchar(10),分数int)

    insertintotbvalues('张三','语文',74)

    insertintotbvalues('张三','数学',83)

    insertintotbvalues('张三','物理',93)

    insertintotbvalues('李四','语文',74)

    insertintotbvalues('李四','数学',84)

    insertintotbvalues('李四','物理',94)

    go

    select*fromtb

    go

    姓名       课程       分数

    ---------- ---------- -----------

    张三       语文        74

    张三       数学        83

    张三       物理        93

    李四       语文        74

    李四       数学        84

    李四       物理        94

     

    2、使用SQL Server 2000静态SQL

    --c

    select姓名,

     max(case课程when'语文'then分数else0end)语文,

     max(case课程when'数学'then分数else0end)数学,

     max(case课程when'物理'then分数else0end)物理

    fromtb

    groupby姓名

    姓名       语文        数学        物理

    ---------- ----------- ----------- -----------

    李四        74          84          94

    张三        74          83          93

     

    二、列转行

    1、建立表格

    ifobject_id('tb')isnotnulldroptabletb

    go

    createtabletb(姓名varchar(10),语文int,数学int,物理int)

    insertintotbvalues('张三',74,83,93)

    insertintotbvalues('李四',74,84,94)

    go

    select*fromtb

    go

    姓名       语文        数学        物理

    ---------- ----------- ----------- -----------

    张三       74          83          93

    李四        74          84          94

    2、使用SQL Server 2000静态SQL

    --SQL SERVER 2000静态SQL

    select*from

    (

     select姓名,课程='语文',分数=语文fromtb

     unionall

     select姓名,课程='数学',分数=数学fromtb

     unionall

     select姓名,课程='物理',分数=物理fromtb

    ) t

    orderby姓名,case课程when'语文'then1when'数学'then2when'物理'then3end

    姓名       课程 分数

    ---------- ---- -----------

    李四       语文 74

    李四       数学 84

    李四       物理 94

    张三       语文 74

    张三       数学 83

    张三       物理 93

     

    不登高山,怎知天高;不临深溪,焉知地厚!站在坚实的土地上,做着生命中最真实的事情;像一棵挺拔的大树,认可自己的命运并敢于迎接属于这一方天空的风风雨雨。

  • 相关阅读:
    华为机试题 成绩排名
    华为机试题 四则运算
    华为机试题 求最大连续bit数
    华为机试题 Redraiment
    华为机试题 素数伴侣
    华为机试题 字符串排序
    华为机试题 计算字符串的距离
    华为机试题 多线程
    UE4-快捷键-按键监听事件
    UE4-Blueprint Class-Actor-开关门-盒子触发体
  • 原文地址:https://www.cnblogs.com/net2012/p/2823256.html
Copyright © 2011-2022 走看看