我想把一个表中所有重复的东西都删掉 怎么做? 比如说 学生成绩表, 一个学生每个科目都有一项数据,有学号 a,姓名 b,科目(有可能是语文数学..==)
现在 select 学号 =a , 显示的表中我想只留第一行的学号 姓名,下面的不显示,只显示第三列的科目,应该怎么做??
结果大概如下 :  编号  姓名  科目  成绩
                 1    周    语文   22
                         数学   33

解决方案 »

  1.   

    不同数据库都有独特的sql处理方式,楼主用的是哪种不过建议还是在程序里判断是否显示
      

  2.   

    用distinct可以吗?你问的问题太笼统了
      

  3.   

    这个是不行的,至少在查询的时候不行。
    你只能在select之后,显示结果的时候把那些不要部分去掉了
      

  4.   

    distinct 不行 我试了, 
      

  5.   

    我用的 sql sever 2000
      

  6.   

    oracle有方法可以获得相同字段排在第几个,判断一下就可以了sqlserver不是很懂,楼主明显应该去那个版问问
      

  7.   

    如果纯粹是使用sql查询出一张表显示出这样的效果,应该是非常困难的,但把查询出来的数据通过一种途径进行处理还是可以的
      

  8.   

    楼主的意思应该是这样:
    学号   姓名   科目   成绩
    12    张三   语文   88
                数学   89
                物理   ..在SQL Server中好像没有这种查询的方式!
      

  9.   

    好像可以的啊,使用分组功能就可以办到的,group by 学号,姓名
      

  10.   

    用group by可以得到类似你的结果,但不完全是你那样的结果,那不能直接得到
      

  11.   

    使用group by也不可能实现他想要的东西,因为你的表中主键出现空行,这根本不可能的,如果不出现空行,只能出现数据冗余,这就不符合第三范式了,所以我还是强烈建议楼主拆表
      

  12.   

    pl sql的存储过程可能可以解决!