>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