一条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执行无重复记录
那个高手帮忙 看下! 先谢谢了!
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
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28