【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.
其中 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.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-676616/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用SQL語句去掉重複的記錄SQL
- 使用SQL語句去掉重複記錄的兩種方法SQL
- Mac如何去掉重複照片:PowerPhotosMac
- javascript去掉陣列中重複的值JavaScript陣列
- Java 去掉字串中的重複資料Java字串
- 原生JS去重(一)--兩種方法去掉重複字元JS字元
- js 去掉陣列物件中的重複物件JS陣列物件
- MS SQL Server 刪除重複行資料SQLServer
- SQL學習(三) 複雜查詢SQL
- 解Bug之路-中介軟體"SQL重複執行"SQL
- es6陣列去重(連重複的物件也可以去掉)陣列物件
- SQL複習SQL
- SpingMVC框架中去掉List中重複bean的方法MVC框架Bean
- 去掉字串中重複部分 提取檔案字尾名字串
- sql重複插入問題SQL
- SQL 處理重複值SQL
- SQL刪除重複資料,只保留一行SQL
- Pytest學習(十三)- 重複執行之pytest-repeat的使用
- sql - distinct 去重複的用法SQL
- SQL重複記錄查詢SQL
- React Hooks學習之旅五:useMemo解決子元件重複執行問題ReactHook元件
- T-SQL 刪除重複資料SQLSQL
- 【Java面試題】54 去掉一個Vector集合中重複的元素Java面試題
- MySQL資料庫行去重複和列去重複MySql資料庫
- java去掉陣列中重複的資料和遍歷資料Java陣列
- SQL 行轉列 PIVOT 學習示例SQL
- js去掉json中重複的id 重新push新的物件屬性JSON物件
- 2020年了,別再重複學習原型了原型
- Dopamine - 靈活、可重複的強化學習研究新框架強化學習框架
- 關於SQL的重複記錄問題SQL
- Oracle中刪除重複資料的SqlOracleSQL
- SQL 學習SQL
- SQL學習SQL
- 面試複習筆記三(sql)面試筆記SQL
- 防止指令碼重複執行方法指令碼
- oracle刪除多餘重複行Oracle
- 如何避免任務重複執行
- SQL學習系列之對執行計時SQL