mysql实现甲骨文的解码和翻译以及管道符拼接

  目前要把网站整体业务迁移到云,并且又现在的甲骨文转换成mysql数据库,实现去埃克斯波特学院,现在有个任务是把oracle的一个视图在mysql中创建上,相关的基表已经创建完毕,想当然觉得只要把甲骨文的创建语句有拿出来,在mysql执行就可以了,其实真正过程遇到了很多问题,具体如下:         1,mysql没有甲骨文的解码函数,         2,mysql t没有甲骨文的翻译函数,         3,mysql创建视图不能有子查询(视图第1349号错误解决方法)错误1349 (HY000):视图的选择包含子查询的FROM子句         我的解决办法是视图中包含视图         4,mysql CONCAT_WS和CONCAT的区别                  创建或替换infoservice视图。mail_tasks作为         选择一个。中期member_id, a。dingyue_id dingyue_id, a。cust_email cust_email, duration_days,         memberinfo。cust_right_group使有效,         ”{member_name”:“| | (memberinfo.CUST_NAME”,“翻译””、“__”)| |’”,“关键词”:“| |         翻译(a.keyword,“””、“__”) | |’”,“table_name2”:“‘| | a.topicid | |’”,         “area_id”:“| | a.areaid | |’”,“category_id添加”:“| |。industryid | |“}”查询         从         (         选择t。record_id dingyue_id, t。member_id为中期,t。cust_email cust_email,         t。duration_days duration_days, t。关键字,关键字,t.table_name,         t.industryid,         t.areaid,         解码(t。”、“topicid,解码(t.table_name zbxx,”, a, b, c, d, e, f, g, h,’,‘xmxx’,, i, j, k), t.topicid topicid)         从infoservice。t_member_my t, infoservice。t_member_my_info我         i.my_id=' 1 '         我和t.member_id=ember_id和t。符号=0         和长度(t.cust_email)比;3         )         infoservice。t_member_info memberinfo         a.mid=memberinfo的地方。record_id memberinfo。cust_right_group !=' 0 '和memberinfo.cust_status=罢健?         针对遇到的问题,来作出相应的调整:                  甲骨文中的解码函数的用处:         解码(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)         该函数的含义如下:         如果条件=值1         返回(翻译值1)         ELSIF条件=值2         返回(翻译值2)         ……         ELSIF条件=值n         返回(翻译值n)         其他的         返回(缺省值)         如果         解码(字段或字段的运算,值1,值2,值3)         这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3         当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多。                  用情况来替换:         把解码(t。”、“topicid,解码(t.table_name zbxx,”, a, b, c, d, e, f, g, h,’,‘xmxx’,, i, j, k), t.topicid topicid)         替换成         当t。topicid=', '然后(当t。table_name=' zbxx“然后”,a, b, c, d, e, f, g, h,“当t。table_name=' xmxx '然后',i, j, k)其他t。作为topicid topicid结束                  首先甲骨文的翻译函数的作用:         翻译(字符串、from_str to_str)         返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string.TRANSLATE是替换所提供的功能的一个超集。如果from_str比to_str长,那么在from_str中而不在to_str中的额外字符将从字符串中被删除,因为它们没有相应的替换字符.to_str不能为空.Oracle将空字符串解释为NULL,并且如果中翻译的任何参数为零,那么结果也是NULL。         
        :一定注意甲骨文的翻译的函数是一一对应的替换,并且它针对的是单个字符,而且是把from_str里面出现的字符全部都对应着换掉(要么换成to_str中对应的字符,要没有对应的就直接去掉),要区别于替换,替换针对的是字符串,必须要全部对应上,才能整体把from_str替换成to_str。                  ,从语法:翻译(expr)         expr:代表一串字符,从与是从左到右一一对应的关系,如果不能对应,则视为空值。         举例:         完成;选择翻译(“abcbbaadef”、“ba”、“# @”)从双;(b将被#替代,将被@替代)         

mysql实现甲骨文的解码和翻译以及管道符拼接