SQL - record uguali ma contrari..

mercoledì 16 luglio 2008 - 14.41

angie81 Profilo | Junior Member

in una tab ho una serie di record uguali ma contrari..
faccio un esempio:

ID ID_2
A B
B A
A C
C A
D F
F D


come posso cancellare i 'doppioni' (vorrei ad esempio avere solo la coppia A - B e non la coppia B - A)?

grazie

lbenaglia Profilo | Guru

>come posso cancellare i 'doppioni' (vorrei ad esempio avere solo
>la coppia A - B e non la coppia B - A)?

Ti ricordo di specificare sempre il DBMS con il quale stai lavorando.
Una soluzione per SQL Server 2005 potrebbe essere:

USE tempdb; CREATE TABLE dbo.myTable( ID char(1) NOT NULL, ID_2 char(1) NOT NULL ); INSERT dbo.myTable VALUES('A', 'B'); INSERT dbo.myTable VALUES('B', 'A'); INSERT dbo.myTable VALUES('A', 'C'); INSERT dbo.myTable VALUES('C', 'A'); INSERT dbo.myTable VALUES('D', 'F'); INSERT dbo.myTable VALUES('F', 'D'); WITH CTE_ToDelete AS ( SELECT T2.* FROM dbo.myTable AS T1 JOIN dbo.myTable AS T2 ON T1.ID = T2.ID_2 AND T1.ID_2 = T2.ID WHERE T1.ID < T2.ID ) DELETE T FROM dbo.myTable AS T JOIN CTE_ToDelete AS CTE ON T.ID = CTE.ID AND T.ID_2 = CTE.ID_2; SELECT * FROM dbo.myTable; /* Output: ID ID_2 ---- ---- A B A C D F (3 row(s) affected) */ DROP TABLE dbo.myTable;

>grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5