Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: delete rows by certain condition
You didn't specify any keys or constraints so here are my assumptions:
CREATE TABLE T (id INTEGER NOT NULL, x CHAR(2) NOT NULL, y INTEGER NOT NULL, z INTEGER NOT NULL, PRIMARY KEY (id,x,y,z)) ;
CREATE TABLE T1 (a INTEGER NOT NULL, b CHAR(3) NOT NULL /* PRIMARY KEY unspecified */) ;
The following is Standard SQL92 but was tested on Microsoft SQLServer 2000 so you'll have to verify that it will work for you:
DELETE FROM T
WHERE z NOT IN
(SELECT MAX(M.z)
FROM T AS M, T1 AS N
WHERE M.id = N.a
AND M.id = T.id AND M.x = T.x AND M.y = T.y
Hope this helps.
--
David Portas
SQL Server MVP
--
Received on Sat Nov 06 2004 - 11:23:04 CST
![]() |
![]() |