ホームページ >データベース >Oracle >Oracle で重複フィールドをクエリする方法

Oracle で重複フィールドをクエリする方法

WBOY
WBOYオリジナル
2022-01-21 11:41:338055ブラウズ

Oracle では、count() 関数を使用して繰り返しフィールドをクエリできます。構文は、「select * from table name where field in (select field from table name group by field getting count (field) >」です。 1)」。

Oracle で重複フィールドをクエリする方法

このチュートリアルの動作環境: Windows 10 システム、Oracle 11g バージョン、Dell G3 コンピューター。

Oracle で重複フィールドをクエリする方法

1. テーブル内の重複する重複レコードを検索します。重複レコードは 1 つのフィールド (ユーザーコード) に基づいて判断されます (userCode)

select 
* 
from 
user
where 
userCode
in 
(select  userCode  from  user group by  userCode having count (userCode) > 1)

2。テーブルを削除します 不要な重複レコード、単一フィールド (userCode) に基づいて重複レコードが判断され、最小の ROWID を持つレコードのみが残ります

delete from 
user 
where 
userCode 
in 
(select userCode from user group by  userCode having count (peopleId) > 1)
and rowid not in 
(select min(rowid) from   user group by userCode having count(userCode)>1)

3. ルックアップ テーブル内の不要な重複レコード (複数のフィールド)

select 
* 
from 
user a
where 
(a.userCode,a.userName) 
in  
(select userCode,userName from user group by userCode,userName having count(*) > 1)

4. テーブル内の冗長な重複レコード (複数のフィールド) を削除し、最小の ROWID を持つレコードのみを残します。

delete from 
user a
where
(a.userCode,a.userName) 
in   
(select userCode,userName from user group by userCode,userName having count(*) > 1)
and rowid not in 
(select min(rowid) from user group by userCode,userName having count(*)>1)

5. テーブル内の冗長な重複レコード (複数のフィールド) を見つけます。レコード

select 
* 
from 
user a
where 
(a.userCode,a.userName)  
in   
(select userCode,userName from user group by userCode,userName having count(*) > 1)
and rowid not in 
(select min(rowid) from user group by userCode,userName having count(*)>1)

推奨チュートリアル: "Oracle Tutorial"

以上がOracle で重複フィールドをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。