举个简单的例子吧,表格如何下:
姓名 分数
张三 60
李四 85
王五 76
赵六 96
陈七 85
王八 88
ken 60
jely 82
ball 60
现在想查询出出每个分数都有谁.
如:
60分的
张三
ken
ball
85分的
李四
陈七
76分的
王五
.....
分数是0~100之间.
请问如何写语句呢?
姓名 分数
张三 60
李四 85
王五 76
赵六 96
陈七 85
王八 88
ken 60
jely 82
ball 60
现在想查询出出每个分数都有谁.
如:
60分的
张三
ken
ball
85分的
李四
陈七
76分的
王五
.....
分数是0~100之间.
请问如何写语句呢?
解决方案 »
- 续挑战难度SQL 之后的问题,也请fa_ge(鶴嘯九天)进来帮帮忙
- 大虾帮忙!急!!!
- 两个数据库之间的传输数据
- 最后10分,where time > '2003-3-3' 语句,如何将其转化成DataTime型?
- 数据表按类别排序并更新序号的问题
- 数据库怎么收缩都小不下来! 急!请各位帮忙看看!
- 关于一个SQL自定义函数,各位高手请进!
- 利用ado存取access数据库,在98中需要采取那些步骤,要安装什么支持ado的东西吗?
- 一个有关把ACCESS导入到SQL SERVER的问题,请高手帮助
- VFP的通用字段用编写代码输入输出
- 有关SQL SERVER2000中的问题
- 请问这个语句怎么写?菜鸟求教
60 61 62 ..............100
姓名 姓名 姓名 ..............姓名
姓名 姓名 姓名 ..............姓名
不过没有的分数不能出来,也就是说不是用循环实现.
如没有人考得62分的,就不能显示有62分
如果是从1到100,那循环很简单.
for(int i=0;i<101;i++)
select name from table where score =i
这样是不行的.
create table ttt(name char(10), grade char(3))
insert into ttt select '张三' ,'60'
union select '李四','85'
union select '王五','76'
union select '赵六', '96'
union select '陈七', '85'
union select '王八', '88'
union select 'ken', '60'
union select 'jely', '82'
union select 'ball', '60'select id=(select count(*) from ttt where grade=a.grade and name<a.name),* into sss from ttt a
--select * from sss
declare @s varchar(8000)
set @s=''
select @s=@s+','''+grade+'''=max(case grade when'''+grade+ ''' then name else null end)' from sss group by grade
select @s=stuff(@s,1,1,'')
exec('select'+@s+' from sss group by id')
drop table ttt
drop table sss
ball 王五 jely 陈七 王八 赵六
ken NULL NULL 李四 NULL NULL
张三 NULL NULL NULL NULL NULL
是要这个结果吗?
照你说的,
select 分数 from 表格 group by 分数
就可以了.
就是这个贴子.