首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

这句SQL SERVER怎么转换成ORACLE

2012-03-02 
这句SQL SERVER如何转换成ORACLE?DELETERULEFROMRULERINNERJOIN(SELECTDEVICETYPEID,ATTACKTYPE,LOCATIONL

这句SQL SERVER如何转换成ORACLE?
DELETE   RULE   FROM   RULE   R
INNER   JOIN   (
      SELECT   DEVICETYPEID,   ATTACKTYPE,   LOCATIONLINK,   MAX(CNTRULE)   AS   MAXRULE
      FROM   RULE
        GROUP   BY   DEVICETYPEID,   ATTACKTYPE,   LOCATIONLINK
    )   MX
      ON   R.DEVICETYPEID   =   MX.DEVICETYPEID   AND   R.ATTACKTYPE   =   MX.ATTACKTYPE    
      AND   R.LOCATIONLINK   =   MX.LOCATIONLINK
      AND   R.CNTRULE   <   MX.MAXRULE


[解决办法]
DELETE FROM RULE R
where
exists
(select 1
from
(
SELECT DEVICETYPEID, ATTACKTYPE, LOCATIONLINK, MAX(CNTRULE) AS MAXRULE
FROM RULE
GROUP BY DEVICETYPEID, ATTACKTYPE, LOCATIONLINK
) MX
where R.DEVICETYPEID = MX.DEVICETYPEID AND R.ATTACKTYPE = MX.ATTACKTYPE
AND R.LOCATIONLINK = MX.LOCATIONLINK
AND R.CNTRULE < MX.MAXRULE
)

热点排行