急,请高手指点,如何实现以下查询功能。。。(有示例数据) 强烈要求楼主解释一下。商品bbb class3的53怎么没有了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个行列转换吧?我给个列,你自己看看.普通行列转换假设有张学生成绩表(t)如下 Name Subject Result 张三 语文 73 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 李四 物理 94 想变成 姓名 语文 数学 物理 张三 73 83 93 李四 74 84 94 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 如果上述两表互相换一下:即 姓名 语文 数学 物理 张三 73 83 93 李四 74 84 94 想变成 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 行) SQL 去重复 并且合并 如何写这样的sql? 求一文本计算平均SQL 求一SQL语句,附上表结构和执行结果,望高手解答!急!!! 请问如何 用 触发器 限制 更新或删除时 的 where 条件内容 ??????????? 急!!!!!!!!!!!! 热心朋友来! 帮助解决一下 ,再不行真要失业了 急!怎么判断数据库一个字段的值包含了同一个表里的另一个字段的值 求能实现这样功能的 SQL 语句,多谢! 一个简单的SQL语句问题: 一个SQL语句 客户端怎么连接SQL服务器??急急 问一个合并多字段的查询问题, 肯定大家帮我解答, 在线等
我给个列,你自己看看.普通行列转换假设有张学生成绩表(t)如下 Name Subject Result
张三 语文 73
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94 想变成
姓名 语文 数学 物理
张三 73 83 93
李四 74 84 94 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
如果上述两表互相换一下:即 姓名 语文 数学 物理
张三 73 83 93
李四 74 84 94 想变成 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 行)