网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 SQL Server 表交叉显示及实现方法
内容
    假设有张学生成绩表(t)如下:
    Name Subject Result
    张三 语文73
    张三 数学83
    张三 物理93
    李四 语文74
    李四 数学84
    李四 物理94
    想变成
    姓名 语文 数学 物理
    张三 738393
    李四 748494
    代码
    create table #t
    (
    Name varchar(10) ,
    Subject varchar(10) ,
    Result int
    )
    insert into #t(Name , Subject , Result) values('张三','语文','73')
    insert into #t(Name , Subject , Result) values('张三','数学','83')
    insert into #t(Name , Subject , Result) values('张三','物理','93')
    insert into #t(Name , Subject , Result) values('李四','语文','74')
    insert into #t(Name , Subject , Result) values('李四','数学','83')
    insert into #t(Name , Subject , Result) values('李四','物理','93')
    declare @sql varchar(8000)
    set @sql = 'select Name as 姓名'
    select @sql = @sql + ' , sum(case Subject when ''' + Subject + ''' then Result end) [' + Subject + ']'
    from (select distinct Subject from #t) as a
    set @sql = @sql + ' from #t group by name'
    exec(@sql)
    drop table #t
    --结果
    姓名 数学 物理 语文
    ---------- ----------- ----------- -----------
    李四 83 93 74
    张三 83 93 73
    如果上述两表互相换一下:即
    姓名 语文 数学 物理
    张三 738393
    李四 748494
    想变成
    Name Subject Result
    张三 语文73
    张三 数学83
    张三 物理93
    李四 语文74
    李四 数学84
    李四 物理94
    代码
    create table #t
    (
    姓名 varchar(10) ,
    语文 int ,
    数学 int ,
    物理 int
    )
    insert into #t(姓名 , 语文 , 数学 , 物理) values('张三',73,83,93)
    insert into #t(姓名 , 语文 , 数学 , 物理) values('李四',74,84,94)
    select 姓名 as Name,'语文' as Subject,语文 as Result from #t union
    select 姓名 as Name,'数学' as Subject,数学 as Result from #t union
    select 姓名 as Name,'物理' as Subject,物理 as Result from #t
    order by 姓名 desc
    drop table #t
    Name Subject Result
    ---------- ------- -----------
    张三 数学 83
    张三 物理 93
    张三 语文 73
    李四 数学 84
    李四 物理 94
    李四 语文 74
    (所影响的行数为 6 行)
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/22 16:54:43