zoukankan      html  css  js  c++  java
  • oracle视图迁移到mysql

    oracle视图迁移mysql(仅记录当前项目遇到的小问题和解决方案)
    涉及问题点:
    1、函数差异
            oracle                    mysql
    判断空值:    nvl('字段',值)             ifnull('字段',值)
    条件赋值:    decode()                case when then else end
    日期格式化:   to_char('date','yyyy-MM-dd')           date_format('date','%Y%m%d')

    日期计算:         时间+|- interval ‘10’ year|month|day|hour|minute|second           date_add(,)    date_sub(,)
    ...
    2、规则限定
    主要是mysql创建视图遇到的规则限制,
    2.1、mysql创建视图不允许SQL中有子查询,oracle不存在此限制。
    2.2、mysql分组排序实现和oracle差异
    oracle分组排序,获取排序id:row_number() over(partition by a.policy_id order by a.transfer_date desc)
    mysql方案:使用函数
    CREATE FUNCTION `func_inc_var_session`(reset BIT) RETURNS int
       
    NO SQL
       
    NOT DETERMINISTIC
        
    begin
         
    IF reset THEN
           
    SET @var := 0;
         
    ELSE
           
    SET @var := IFNULL(@var,0) + 1;
         
    END IF;
         
    return @var;
        
    end
    视图:SELECT func_inc_var_session(0) FROM (select语句集合结果)T JOIN (SELECT func_inc_var_session(1)) r
    【转自--https://blog.csdn.net/ai_feng123/article/details/82256814】
    2.2.1倘若不使用视图排序,可使用变量(变量需要使用实体表,mysql变量不支持虚拟表)
    SELECT @rownum := @rownum+1 AS rownum, table1.* FROM (SELECT @rownum:=0) r ,table1;
    --附mysql创建视图的限制--http://blog.51yip.com/mysql/1065.html

  • 相关阅读:
    js获取鼠标的位置
    去掉a标签的虚线框,避免出现奇怪的选中区域
    点击按钮 可以显示隐藏
    input标签获取焦点时文本框内提示信息清空背景颜色发生变化
    ie6下面不支持!important的处理方法
    [zz]【整理】Python中Cookie的处理:自动处理Cookie,保存为Cookie文件,从文件载入Cookie
    [vim]大小写转换
    [zabbix]zabbix2.0apt源安装
    [mysql]replace
    [ethernet]ubuntu更换网卡驱动
  • 原文地址:https://www.cnblogs.com/cbxx/p/11137330.html
Copyright © 2011-2022 走看看