利用sql語句找出表中有重複記錄的三種sql寫法
create table test_0210(id number,name varchar2(32),age number);
insert into test_0210 values(1,'abc',32);
insert into test_0210 values(2,'def',33);
insert into test_0210 values(3,'def',45);
commit;
select * from test_0210;
SQL> select * from test_0210;
ID NAME AGE
---------- -------------------------------- ----------
1 abc 32
2 def 33
3 def 45
第一種寫法sql:
SQL> select a.*
2 from test_0210 a,test_0210 b
3 where a.id <> b.id and a.name = b.name ;
ID NAME AGE
---------- -------------------------------- ----------
3 def 45
2 def 33
第二種寫法sql:
SQL> select a.* from test_0210 a,(select name,count(*) from test_0210 b group by name having count(*)>1) b
2 where a.name=b.name;
ID NAME AGE
---------- -------------------------------- ----------
2 def 33
3 def 45
第三種寫法sql 利用分析函式
SQL> select id,name,age
2 from (select id,name,count(name) over(partition by name) as rn,age
3 from test_0210)
4 where rn > 1
5 ;
ID NAME AGE
---------- -------------------------------- ----------
2 def 33
3 def 45
SQL>
insert into test_0210 values(1,'abc',32);
insert into test_0210 values(2,'def',33);
insert into test_0210 values(3,'def',45);
commit;
select * from test_0210;
SQL> select * from test_0210;
ID NAME AGE
---------- -------------------------------- ----------
1 abc 32
2 def 33
3 def 45
第一種寫法sql:
SQL> select a.*
2 from test_0210 a,test_0210 b
3 where a.id <> b.id and a.name = b.name ;
ID NAME AGE
---------- -------------------------------- ----------
3 def 45
2 def 33
第二種寫法sql:
SQL> select a.* from test_0210 a,(select name,count(*) from test_0210 b group by name having count(*)>1) b
2 where a.name=b.name;
ID NAME AGE
---------- -------------------------------- ----------
2 def 33
3 def 45
第三種寫法sql 利用分析函式
SQL> select id,name,age
2 from (select id,name,count(name) over(partition by name) as rn,age
3 from test_0210)
4 where rn > 1
5 ;
ID NAME AGE
---------- -------------------------------- ----------
2 def 33
3 def 45
SQL>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-400/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用SQL語句去掉重複記錄的兩種方法SQL
- 用SQL語句去掉重複的記錄SQL
- 用SQL語句刪除重複記錄的四種方法SQL
- 刪除重複資料的三種sql寫法SQL
- Oracle 查詢並刪除重複記錄的SQL語句OracleSQL
- SQL語句規範的寫法SQL
- OCI插入SQL語句的寫法SQL
- 【sql】編寫基本的SQL SELECT語句三SQL
- Oracle 刪除表中重複記錄的DELETE SQLOracledeleteSQL
- Oracle如何複製表的sql語句OracleSQL
- SQL重複記錄查詢SQL
- 【原】關於資料倉儲中複雜報表SQL語句的寫法SQL
- 關於SQL的重複記錄問題SQL
- MySQL刪除表重複記錄的三種方法舉例MySql
- 標準SQL寫法的重複列問題SQL
- 學習筆記----一句SQL語句寫個乘法表筆記SQL
- MySQL 記錄所有執行了的 sql 語句MySql
- jsqlparser使用記錄---生成sql語句JSSQL
- Sql建表語句SQL
- sql 建表語句SQL
- sql語句建立表SQL
- 找出Mysql查詢速度慢的SQL語句MySql
- 一個過濾重複資料的sql語句(轉)SQL
- 透過sql語句建立表時指定表空間的語法SQL
- 複製表結構和資料SQL語句SQL
- 找出消耗CPU最高的程式對應的SQL語句SQL
- 查詢orcale執行的SQL語句記錄SQL
- 利用pl/sql執行本地的sql檔案中的sql語句SQL
- SQL語句筆記SQL筆記
- 【sql】編寫基本的SQL SELECT語句四SQL
- 【sql】編寫基本的SQL SELECT語句一SQL
- 一條SQL語句的書寫SQL
- sql刪除重複記錄只保留一條SQL
- 我透過諮詢才知道的sql語句寫法SQL
- Oracle sql with 語句語法與例子OracleSQL
- 利用SQL語句完成位操作 (轉)SQL
- sql語句抄寫作業SQL
- 如何寫這個sql語句?SQL