+ -
当前位置:首页 → 问答吧 → 一条oracle sql 移植到mysql上问题!求助!

一条oracle sql 移植到mysql上问题!求助!

时间:2011-09-02

来源:互联网

目的:将一条oracle sql 移植到mysql 上,是一个视图创建的语句,要求原来的业务逻辑不能变

oracle 上:

create or replace view hypervisorhostmetrics as
select
    HOSTNAME,
    HOST_STATUS,
    HOST_TYPE,
    ISF_ID,
    PRODUCT_VERSION,
    TABLE_VERSION
  from
    (
        select distinct
        (select a.metrics_value
           from HYPERVISORHOSTSNAPSHOTMETRICS a
          where a.metrics_name = 'name'
            and a.HOSTNAME = z.HOSTNAME) as HOSTNAME,
        (select b.metrics_value
           from HYPERVISORHOSTSNAPSHOTMETRICS b
          where b.metrics_name = 'hoststatus'
            and b.HOSTNAME = z.HOSTNAME) as HOST_STATUS,
        (select c.metrics_value
           from HYPERVISORHOSTSNAPSHOTMETRICS c
          where c.metrics_name = 'hosttype'
            and c.HOSTNAME = z.HOSTNAME) as HOST_TYPE,
         z.ISF_ID,
         z.PRODUCT_VERSION,
         z.TABLE_VERSION
         from HYPERVISORHOSTSNAPSHOTMETRICS z
    )


我自己 改的mysql 上的 (注意view部分只能用一个select实现,msyql 官方文档上说 创建视图得时候不支持select 嵌套) :


DROP VIEW IF EXISTS `HYPERVISORHOSTMETRICS`;

CREATE VIEW `HYPERVISORHOSTMETRICS`
        AS
SELECT DISTINCT
CASE METRICS_NAME WHEN  'name'  THEN METRICS_VALUE  END HOSTNAME ,
CASE METRICS_NAME WHEN  'hoststatus'  THEN METRICS_VALUE END HOST_STATUS ,
CASE METRICS_NAME WHEN  'hosttype'  THEN METRICS_VALUE END HOST_TYPE ,
Z.ISF_ID,
Z.PRODUCT_VERSION,
Z.TABLE_VERSION
FROM HYPERVISORHOSTSNAPSHOTMETRICS Z;

结果发现业务逻辑变了,有重复记录,在oracle执行无重复记录


那个高手帮忙 看下! 先谢谢了!

作者: 8366   发布时间: 2011-09-02

帮顶一下

作者: 17672270   发布时间: 2011-09-04