SQL去除重复记录 急~~

在bookinfo里查询bookid为1234的记录,但是bookinfo里不只有一条booid为1234的记录,我想查询时只显示一条而且是该死记录的全部信息.即:
bookid bookname bookauthor ……
1234 aa bb ……

我试过用distinct,select distinct * from ……
但还是两条相同bookid的记录都显示出来,请高手指点指点,谢谢~~

第1个回答  2008-10-13
select distinct * from ....
知道你这句的意思吗 这里的distinct不是指去除相同bookid的信息,
而是去除所有相同字段的信息。就知道为什么出现那种结果了
例子:
id name
1 A
1 B
1 C
1 A
结果是:
1 A
1 B
1 C

注意事项:这里的两条重复的记录千万不要出现 这只是个例子

可以用 select distinct bokkid ,(其他全部字段..) from ....
第2个回答  2008-10-13
前提是这个表的每一行必须要有一个字段的值是唯一的,而且是整型,没有的话最好在结构里加一个,比如这个字段名是:ID
Select bookinfo.bookid,bookinfo.bookname,bookinfo.bookauthor From (
Select Max(ID) As MaxID,bookid,bookname,bookauthor From bookinfo Group By bookid,bookname,bookauthor
) Tmp
Inner Join bookinfo On bookinfo.ID=Tmp.MaxID

SQL里这样写应该可以的。
第3个回答  2008-10-13
将select distinct *改成select distinct 具体的字段试试,
然后网上有很多删除重复字段的文章,查下,将重复的删除,然后为表设置主键,这样以后就不会有完全一样的记录了,也就不会造成这样的麻烦了,
呵呵,希望能有帮助,^_^
第4个回答  2008-10-13
楼主既然只想要booid=1234中的任何一条记录,那可以这样:
select top 1 * from bookinfo where booid = '1234'本回答被提问者采纳
第5个回答  2008-10-13
我的办法是:
例如要清除a表的重复数据;
先暂停服务器访问;
SELECT DISTINCT * INTO b FROM a;
DELETE a;
SELECT DISTINCT * INTO a FROM b;
DROP TABLE b;

呵呵,可能不是好方法,但这样做也得到了我想要的结果

sql中删除重复数据
1、查找表中多余的重复记录,重复记录是根据单个字段来判断。2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录。3、查找表中多余的重复记录(多个字段)。4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录。

sql查询出来的字段如何按照指定要求去重?
要使用SQL去重查询特定字段,可借助DISTINCT关键字。示例查询语句如下:此语句利用DISTINCT去除column1、column2、column3值的重复,仅保留不同值。如需更复杂去重需求,即根据特定规则合并重复值,可结合GROUP BY子句与聚合函数。示例如下:此语句通过GROUP BY column1对结果进行分组,MAX()函数选取每组中...

[SQL快速入门-22] SQL DISTINCT关键字:删除重复记录
当我们加入 DISTINCT 关键字,如下的 SELECT 语句就去除了重复:执行结果显示出每个唯一的 age 和 country 组合,重复的记录已经被成功移除。

sql查询去掉重复记录
4、也可以通过“select distinct name from user”sql语句来去掉重复数据,这里去掉了张三的重复数据。5、通过“select distinct class from user”sql语句来去掉班级相同的重复数据,如下图所示:

有哪些方法可以从sql查询结果中去除重复的数据?
去除SQL查询结果中重复数据的方法多种多样,以下将逐一介绍。首先,使用DISTINCT关键字是去除重复行的简便方法。此关键字在返回结果集时会自动过滤掉重复的记录,实现快速去重。其次,GROUP BY语句结合聚合函数(如COUNT, MAX, MIN, SUM, AVG等)通常用于统计操作,但同样能用于去除重复数据。通过分组,可以...

sql中怎么删除两条重复记录并保留一条
将数据去重复后暂存到临时表#a中 select distinct * into #a from table1 where 条件 delete table1 where 删除限制条件 insert into table1 select * from #a -将暂存的数据插回数据库 drop table #a -删除临时表 注:当前的数据库,每一个表都应该有一个标志字段,以保证记录不完全重复,...

浅谈sql数据库去重
当需要根据某一列或多列进行分组去重时,GROUP BY子句更为适用。例如,在一个销售记录表中,如果想去除重复的产品销售数据,只保留每条产品的销售总额,可以使用`SELECT 产品, SUM FROM 销售记录 GROUP BY 产品`。这样,每个产品的总销售额会被计算,且每个产品只会出现一次。3. 结合其他SQL功能进行高级...

SQL:去重的几种常用方法(oracle)
1. **使用distinct进行去重 这是一般SQL中的基本方法,能直接去除重复的行。然而,这种方法仅适用于要去重的字段,并不能显示其他字段。2. **使用group by进行去重 通过分组,我们可以只保留每个组中的唯一记录,这适用于具有多个字段的表。3. **使用窗口函数进行去重 窗口函数的好处是可以标记重复数据...

SQL查询,如何去除重复的记录?
首先,先说明一个问题。这样的结果出现,说明系统设计是有问题的。其次删除重复数据,你要提供你是什么数据库。不同数据库会有不同的解决方案。关键字Distinct 去除重复,如下列SQL,去除Test相同的记录;1. select distinct Test from Table2. 如果是要删除表中存在的重复记录,那就逻辑处理,如下:3....

sql中如何删除一个表中重复的记录?
sql中删除一个表中的重复记录可以采用如下步骤:1、把a_dist表的记录用distinct去重,结果放到临时表中。select distinct * into #temp from a_dist;2、把a_dist表的记录全部删除。delete from a_dist;3、把临时表中的数据信息导进到a_dist表中,并删除临时表。insert into a_dist select *...

相似回答
大家正在搜