SQL Serverが重複データを取得する方法
9826 ワード
重複するデータの値を取得すると
二重複データ取得の記録
トリプルルックアップテーブルの余分な重複レコード(複数フィールド)
4テーブルの余分な重複レコードを削除し、rowidの最小レコードのみを残す
5テーブルの余分な重複レコード(複数のフィールド)を削除し、rowidの最小レコードのみを残す
六余分な重複データの取得
7 rowidの最小レコードを含まない余分な重複レコード(複数のフィールド)を取得
8フィールドの左の1番目を削除
9フィールドの右側の1番目を削除
転載先:https://www.cnblogs.com/qiangshu/archive/2013/02/05/2893047.html
select user_name from users
group by user_name
having(count(1)>1)
二重複データ取得の記録
select * from users where user_name in
(
select user_name from users
group by user_name
having(count(1)>1)
)
トリプルルックアップテーブルの余分な重複レコード(複数フィールド)
select * from vitae
where (a.peopleId,a.seq)
in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4テーブルの余分な重複レコードを削除し、rowidの最小レコードのみを残す
DELETE FROM people
WHERE peopleName IN ( SELECT peopleName
FROM people
GROUP BY peopleName
HAVING COUNT(peopleName) > 1 )
AND peopleId NOT IN ( SELECT MIN(peopleId)
FROM people
GROUP BY peopleName
HAVING COUNT(peopleName) > 1 )
5テーブルの余分な重複レコード(複数のフィールド)を削除し、rowidの最小レコードのみを残す
delete from vitae a
where (a.peopleId,a.seq)
in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
六余分な重複データの取得
select * from users where user_name not in
(
select max(user_name) from users
group by user_name
having(count(1)>1)
)
7 rowidの最小レコードを含まない余分な重複レコード(複数のフィールド)を取得
select * from vitae a
where (a.peopleId,a.seq)
in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
8フィールドの左の1番目を削除
UPDATE tableName
SET [Title] = RIGHT([Title], ( LEN([Title]) - 1 ))
WHERE Title LIKE ' %'
9フィールドの右側の1番目を削除
UPDATE tableName
SET [Title] = LEFT([Title], ( LEN([Title]) - 1 ))
WHERE Title LIKE '% '
転載先:https://www.cnblogs.com/qiangshu/archive/2013/02/05/2893047.html