失忆的硬盘

SQL 的一些数据过滤

一. 查找重复记录

1. 查找全部重复记录

Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)

2. 过滤重复记录(只显示一条)

Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)

注:此处显示ID最大一条记录

二. 删除重复记录


1. 删除全部重复记录(慎用)

Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)

2. 保留一条

Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)

三. 过滤select查询得到的重复数据

1. 过滤一次select查询中的重复数据:

select distinct HZD from t_Table where MZD in (...)

     distinct

2. 过滤两次select查询中的重复数据:

select。。。where 。。(select 。。。。。。union select。。。。)

介绍几个SQL指令:

UNION,用于获取两个结果集的并集,会自动去掉结果集中的重复行,并会以第一列的结果进行排序

INTERSECT,用于获取两个结果集的交集,并且以第一列排序

MINUS,用于获取结果集的差集(或者说补集),显示第一个结果集存在的,第2个结果集不存在的数据

UNION ALL,与UNION相似,不同的是UNION ALL不会自动去处重复行,也不会以任何列排序

Ltrim,Rtrim,去除左右的不同字符串

以上个指令的具体用法去查资料,在此做个备忘

posted on 2009-06-18 09:25  失忆的硬盘  阅读(2514)  评论(0编辑  收藏  举报