帮忙写一个sql查询语句
表结构usernamefangxiangexam王java80王NET80李java90李NET70王SQL90-----------------查询出来:usernam...
表结构
username fangxiang exam
王 java 80
王 NET 80
李 java 90
李 NET 70
王 SQL 90
-----------------
查询出来:
username java NET SQL
王 80 80 90
李 90 70 展开
username fangxiang exam
王 java 80
王 NET 80
李 java 90
李 NET 70
王 SQL 90
-----------------
查询出来:
username java NET SQL
王 80 80 90
李 90 70 展开
展开全部
--本语句可以支持不定数量的fangxiang
create table #table(username varchar(10),fangxiang varchar(20),exam int)
insert into #table(username,fangxiang,exam)
select '王', 'java', 80
union all select '王', 'NET', 80
union all select '李', 'java', 90
union all select '李', 'NET', 70
union all select '王', 'SQL', 90
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+',sum(case when fangxiang='''+fangxiang+''' then exam else null end) as '
+fangxiang from #table group by fangxiang
set @sql='select username'+@sql+' from #table group by username'
exec(@sql)
drop table #table
--结果
username java NET SQL
---------- ----------- ----------- -----------
李 90 70 NULL
王 80 80 90
create table #table(username varchar(10),fangxiang varchar(20),exam int)
insert into #table(username,fangxiang,exam)
select '王', 'java', 80
union all select '王', 'NET', 80
union all select '李', 'java', 90
union all select '李', 'NET', 70
union all select '王', 'SQL', 90
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+',sum(case when fangxiang='''+fangxiang+''' then exam else null end) as '
+fangxiang from #table group by fangxiang
set @sql='select username'+@sql+' from #table group by username'
exec(@sql)
drop table #table
--结果
username java NET SQL
---------- ----------- ----------- -----------
李 90 70 NULL
王 80 80 90
展开全部
不是有类似的吗?
http://zhidao.baidu.com/question/13242062.html
select A.姓名,A.科目 as 语文,B.科目 as 数学,C.科目 as 英语
from student A,student B,student C
where A.姓名=B.姓名 and B.姓名=C.姓名
and A.科目='语文' and B.科目='数学'
and C.科目='英语'
http://zhidao.baidu.com/question/13242062.html
select A.姓名,A.科目 as 语文,B.科目 as 数学,C.科目 as 英语
from student A,student B,student C
where A.姓名=B.姓名 and B.姓名=C.姓名
and A.科目='语文' and B.科目='数学'
and C.科目='英语'
参考资料: http://zhidao.baidu.com/question/13242062.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询