最近在做一个MS sql 2005数据库导入/导出的工作;在导完数据以后需要删除一个字段相同的记录,如:删除username相同的记录;结果要求留下所有同名用户中成绩Score最大的记录;
 
   我的思路是如下:
 
     1.先查询出有多少记录是重复的;使用:select username from Users group by username having count(1)>1返回记录69条;分析了一下重复记录发现很怪异的情况:      select username from Users where username="宝宝宝" 查询结果:居然是两条"宝々宝" 和 "宝宝宝"      select username from Users where username="宝宝宝" 查询结果:居然是两条"12345" 和 "①②③④⑤"出现这种情况是怎么回事;请高手指点;

解决方案 »

  1.   

    select username from Users where username=N'宝宝宝'
    这样试试
      

  2.   

    很感谢“SQL77”的回复,你提供的方法其实可以查询区分开来,但是我想为什么数据库会把"宝々宝" 和 "宝宝宝" 当初一样来处理?是不是数据库的“排序规则”造成的;
      

  3.   

    呵呵,我自己解决了,原因是因为数据库的排序规则造成的;sql 2005默认的排序规则是“Chinese_PRC_CI_AS”,不区分大小也不区分全角半角,所有造成select语句认为是相同的数据;解决办法是设置数据库的排序规则,在数据库的属性里设置;但是这样将会改变整个数据库的排序规则,这样可能不是太合适;所以就只是单独设置了表中单个字段的排序规则;虽然是自己解决这个问题,但是还是很感谢大家帮助,我就一人给一点分吧;以后大家一起交流; Msn: [email protected]