【SQL 学习】去掉重复行

“成对”的记录 去掉其中一
其中 a----c   和 c-----a  “成对” 于是去掉其中一个,如,去掉c----a
     b----c   和 c-----b  “成对” 于是去掉其中一个,如,去掉c----b
下面是newid 提供的方法,很强大。。
least(lid,fid) 返回两个值中的最小值
greatest(lid,fid) 返回两个值中的最大值
SQL> create table d (lid varchar2(1) , fid varchar2(1));
Table created.
SQL> insert into d values ('a','b');
1 row created.
SQL> insert into d values ('a','c');
1 row created.
SQL> insert into d values ('a','d');
1 row created.
SQL> insert into d values ('b','c');
1 row created.
SQL> insert into d values ('b','d');
1 row created.
SQL> insert into d values ('c','a');
1 row created.
SQL> insert into d values ('c','b');
1 row created.
SQL> insert into d values ('c','f');
1 row created.
SQL> insert into d values ('d','f');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from d;
L F
- -
a b
a c
a d
b c
b d
c a
c b
c f
d f
9 rows selected.
SQL> select distinct least(lid,fid) ,greatest(lid,fid) from d;
L G
- -
c f
a d
b c
d f
a b
b d
a c
7 rows selected.
SQL> select least(lid,fid) ,greatest(lid,fid) from d;--不加distinck
L G
- -
a b
a c
a d
b c
b d
a c
b c
c f
d f
9 rows selected.

时间: 2024-09-20 05:42:39

【SQL 学习】去掉重复行的相关文章

ASP.NET DataTable去掉重复行的2种方法

 这篇文章主要介绍了ASP.NET DataTable去掉重复行的2种方法,本文直接给出去重代码,需要的朋友可以参考下     第一种,使用Linq查询表达式,code如下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 DataTable testtable = new DataTable(); testtable.Columns.Add("ID"); testtable.Columns.Add("ProductName&quo

分享SQL Server删除重复行的6个方法

1.如果有ID字段,就是具有唯一性的字段 复制代码 代码如下: delect table where id not in ( select max(id) from table group by col1,col2,col3... ) group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同. 2. 如果是判断所有字段也可以这样 复制代码 代码如下: select * into #aa from table group by id1,i

分享SQL Server删除重复行的6个方法_MsSql

1.如果有ID字段,就是具有唯一性的字段 复制代码 代码如下: delect table where id not in ( select max(id) from table group by col1,col2,col3... ) group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同. 2. 如果是判断所有字段也可以这样 复制代码 代码如下: select * into #aa from table group by id1,i

SQL语句去掉重复记录,获取重复记录_MsSql

SQL语句去掉重复记录,获取重复记录  --查询一个表中有效去掉重复的记录,UserID为自增长主键,RoleID为重复字段 SELECT MIN(UserID) AS UserID, RoleID FROM tmpTable GROUP BY RoleID SELECT RoleID FROM tmpTable GROUP BY RoleID HAVING (COUNT(*) > 1) SELECT DISTINCT * FROM tmpTable sql语句查询 sql server acc

sql里将重复行数据合并为一行数据使用逗号进行分隔_mssql2005

一.定义表变量 复制代码 代码如下: DECLARE @T1 table ( UserID int , UserName nvarchar(50), CityName nvarchar(50) ); 复制代码 代码如下: insert into @T1 (UserID,UserName,CityName) values (1,'a','上海') insert into @T1 (UserID,UserName,CityName) values (2,'b','北京') insert into @

sqlserver利用存储过程去除重复行的sql语句

还是先上代码吧 ,可以先看 SQL语句去掉重复记录,获取重复记录 复制代码 代码如下: ALTER procedure [dbo].[PROC_ITEMMASTER_GETUNIQUE] @PAGEINDEX INT,@uid int,@itemnumber varchar(50) AS begin tran --开始事务 drop table [ItemMaster].[dbo].[testim] --删除表 --把不重复记录转存到testim中 select * into [ItemMast

sqlserver利用存储过程去除重复行的sql语句_MsSql

还是先上代码吧 ,可以先看 SQL语句去掉重复记录,获取重复记录 复制代码 代码如下: ALTER procedure [dbo].[PROC_ITEMMASTER_GETUNIQUE] @PAGEINDEX INT,@uid int,@itemnumber varchar(50) AS begin tran --开始事务 drop table [ItemMaster].[dbo].[testim] --删除表 --把不重复记录转存到testim中 select * into [ItemMast

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最大一条记录 SQL Server删除重复行是我们最常见的操作之一,下面就为您

删除DataTable重复列,只删除其中的一列重复行的解决方法_实用技巧

vs2005针对datatable已经有封装好的去重复方法: 复制代码 代码如下: //去掉重复行 DataView dv = table.DefaultView; table = dv.ToTable(true, new string[] { "name", "code" });  此时table 就只有name.code无重复的两行了,如果还需要id值则  table = dv.ToTable(true, new string[] { "id"