2012-12-28 22 views
0

我的源代碼管理數據庫有兩個表 - PRJPRJHIST,它們都有相同的列和約束。如何在Oracle中刪除列值最大的行

例如。 PRJPRJHIST有以下行

PRJ TABLE  

PRJ_NAME PRJ_TYPE PRJ_VERSION PRJ_AUTHOR PRJ_LANG 
PRJ001  SCRIPT 3   MARK  PERL 
PRJ002  SCRIPT 2   JACK  KSH 
PRJ003  BINARY 4   JADE  C++ 


PRJHIST TABLE 

PRJ_NAME PRJ_TYPE PRJ_VERSION PRJ_AUTHOR PRJ_LANG 
PRJ001  SCRIPT 1   MARK  PERL 
PRJ001  SCRIPT 2   MARK  PERL 
PRJ001  SCRIPT 3   MARK  PERL 
PRJ002  SCRIPT 1   JACK  KSH 
PRJ002  SCRIPT 2   JACK  KSH 
PRJ003  BINARY 1   JADE  C++ 
PRJ003  BINARY 2   JADE  C++ 
PRJ003  BINARY 3   JADE  C++ 
PRJ003  BINARY 4   JADE  C++ 

PRJ表總是從PRJHIST

最高版本的行如何刪除PRJHIST表與max(PRJ_VERSION)所有行?

即我需要從PRJHIST

PRJ001  SCRIPT 3   MARK  PERL 
PRJ002  SCRIPT 2   JACK  KSH 
PRJ003  BINARY 4   JADE  C++ 

回答

1
DELETE FROM PRJHIST a 
WHERE EXISTS (SELECT 'X' 
       FROM PRJ b 
       WHERE a.PRJ_NAME = b.PRJ_NAME 
        AND a.PRJ_VERSION = b.PRJ_VERSION); 
+0

感謝Annjawn刪除以下行。我會試試這個,明天回覆。 EXIST條款應該有助於我的事業。 – Sri

+0

按預期工作。謝謝 – Sri

相關問題