请问SQL的问题!(50分)

  • 主题发起人 主题发起人 pwq
  • 开始时间 开始时间
P

pwq

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库如下:

姓名 分数
张三 80
李四 85
张三 80
其中有可能有记录相同。
我要查询的记录是,相同的记录只找一次。
结果:

张三 80
李四 85

怎么遍啊?
 
select distinct 姓名, 分数 from table
 
distinct可以消去结果集中的重复行
 
对分数有何要求?
 
要查询的记录保证相同的记录只有一次,方法如 smallbs 所言。不过应该在
建数据库表结构时避免这种不符合NF的情况出现。
 
假如仅为消除重复的行,DISTINCT已足够
 
这个问题咋就值50分啦,你随便向你的同事问问不就行了?
 
同意楼上,菜鸟问题。
 
按YoungSun说法50大家都有分了?不可能,先来先有分
 
其实我的要求,并不是这么简单的
我有记录还不是完全相同,有的字段完全一样,有的字段却不一样
我用DISTINCT是可以消除某些字段一样的记录,但是这样找出来的记录好像只显示DISTINCT后面跟的那个字段
如:select distinct 姓名 from table
这样子的话,姓名相同的的确过滤掉了,但出找出来的记录只显示姓名一个字段而已,但是我还需要显示分数这个字段(分数不相同)
怎么解决呢?
 
select distinct 姓名+分数,姓名,分数 from table
[:D] 肮脏吧
把分数转换成char型
 
会不会有这样的情况呢:
1 张三 80
2 李四 70
3 张三 85
4 张三 80
这样,张三是80还是85呢?
 
呵呵,这个漏说了。
分数取较小的那个
 
select 姓名, min(分数)
from table
group by 姓名
 
数据库设计有问题。。。
 
   
用这个:
  
select 姓名, min(分数)
from table
group by 姓名
  
  
 
后退
顶部