1.已知一个表的结构为:
姓名 科目 成绩
-----------------------------------
张三 语文 20
张三 数学 30
张三 英语 50
李四 语文 70
李四 数学 60
李四 英语 90
怎样通过select语句把他变成以下形式显示出来:
姓名 语文 数学 英语
-------------------------------------
张三 20 30 50
李四 70 60 90
答案:
2.有如下一张表:
购物人 商品名称 数量
A 甲 2
B 乙 4
C 丙 1
A 丁 2
B 丙 5
给出所有购入商品为两种或两种以上的购物人记录,用一句SQL实现
姓名 科目 成绩
-----------------------------------
张三 语文 20
张三 数学 30
张三 英语 50
李四 语文 70
李四 数学 60
李四 英语 90
怎样通过select语句把他变成以下形式显示出来:
姓名 语文 数学 英语
-------------------------------------
张三 20 30 50
李四 70 60 90
答案:
declare @s varchar(8000)
set @s='select 姓名'
select @s=@s+',['+科目+']=sum(case 科目 when '''+科目+''' then 分数 else 0 end)' from k group by 科目
exec (@s+' from k group by 姓名')
2.有如下一张表:
购物人 商品名称 数量
A 甲 2
B 乙 4
C 丙 1
A 丁 2
B 丙 5
给出所有购入商品为两种或两种以上的购物人记录,用一句SQL实现
select 购物人 from tb_Name group by 购物人 where 数量>=2