一个简单的去除重复字段的SQL查询语句..doc

一个简单的去除重复字段的SQL查询语句..doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一个简单的去除重复字段的SQL查询语句.

一个简单的去除重复字段的SQL查询语句 2009-11-16 17:12 一个简单的去除重复字段的SQL查询语句 [2008-11-04 16:01:15 by rainoxu] | 分类:我的知识库 今天公司里让.Net程序修改一个程序,需要去掉输出中的重复楼盘名称,一开始想到的是Distinct,但死路不通,只能改道,最终偶在网上找到了一个思路,修改了一下就有了。 先看所有记录(这是我在测试的数据库里做的): OK,我们这样来消除重复项: 1.? select * from table1 as a where not exists(select 1 from table1 where logID=a.LogID and IDa.ID) 2. 最近做一个数据库的数据导入功能,发现联合主键约束导致不能导入,原因是源表中有重复数据,但是源表中又没有主键,很是麻烦。经过努力终于解决了,现在就来和大家分享一下,有更好的办法的可以相互交流。 有重复数据主要有一下几种情况: 1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 example: select distinct * from table(表名) where (条件) 2.存在部分字段相同的纪录(有主键id即唯一键) 如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组 example: select * from table where id in (select max(id) from table group by [去除重复的字段名列表,....]) 3.没有唯一键ID 这种情况我觉得最复杂,目前我只会一种方法,有那位知道其他方法的可以留言,交流一下: example: select identity(int1,1) as id,* into newtable(临时表) from table select * from newtable where id in (select max(id) from newtable group by [去除重复的字段名列表,....]) drop table newtable 关于一个去除重复记录的sql语句 2009-8-24 16:33 提问者:lichuanbao1234 | 悬赏分:30 | 浏览次数:1075次 我要查询一个表中content字段相同的记录的详细信息。其中每条记录都有一个标识符state,0表示未发送,1表示已发送。我要统计所有content相同的记录的信息,包括其中已发送(state=1)的记录。请问大家看看我这样写有什么问题? select distinct content,name,push_date,total,e.total_sended from tbl_jingwei_push a, (select count(*) as total_sended from tbl_jingwei_push where state=1 and content=a.content) e 这样查出的其他字段都是符合要求的,唯独e.total_sended的结果出问题,它显示的是表中所有state=1的记录,请问大家我要怎么改呢? 问题补充: 这个sql语句是不对的。表a是错误的。请大家指点迷津,我要统计content相同并且state为1的记录数目。谢谢各位 。我就是想去掉重复记录并统计一下,只不过如果state=1的话,我要统计一下state=1的记录数。前提是这些记录的content是相同的。 二楼回答的不对,这和我写的是一样的,a表是不能在e表中用的。 2009-8-24 16:57 最佳答案 select distinct content,name,push_date,total,sum(case state when 1 then 1 when 0 then 0 end) as total_sended from tbl_jingwei_push 以上,希望对你有所帮助! select distinct content,name,push_date,total,e.total_sended from tbl_jingwei_push a, (select count(*) as total_sended from tbl_jingwei_push where state=1 and e.content=a.content) e 赞同 0 | 评论 2009-8-24 16:54 hrhero | 五级 select distinct conten

文档评论(0)

xznh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档