重複を削除したいのですが、重複として表示されません。これを削除して1つだけ残すのに役立つクエリはありますか?
2 に答える
2
このクエリは正規化された値 (すべて varchar の場合) を生成し、重複をチェックできるようになりました
select
[someId],
case
when reg_num < driver_name then reg_num + driver_name
else driver_name + reg_num
end as combination
于 2013-11-05T07:21:49.017 に答える
0
このようなものは、ソートされた順序で 2 つのフィールドで行をグループ化し、1 つを除いてすべて削除します。両方のフィールドが一致する必要があり、TableId という名前の主キーがあると仮定しています。
DELETE
T
FROM
[Table] T
JOIN (
SELECT
TableId,
[Name],
ROW_NUMBER() OVER ( PARTITION BY [Name] ORDER BY TableId DESC ) RowId
FROM (
SELECT
TableId,
Reg_Num + '|' + Driver_Name AS [Name]
FROM
[Table]
WHERE
Reg_Num <= Driver_Name
UNION
SELECT
TableId,
Driver_Name + '|' + Reg_Num AS [Name]
FROM
[Table]
WHERE
Driver_Name < Reg_Num
) Y
) X ON
X.TableId = T.TableID
WHERE
RowId > 1
于 2013-11-05T07:39:54.120 に答える