美文网首页程序员
关于Oracle中实现单列拆分成多列的技术应用

关于Oracle中实现单列拆分成多列的技术应用

作者: 肖明卫 | 来源:发表于2018-11-07 18:29 被阅读1次

    1.前言:通过使用FineBI进行“点地图”方式来展现数据。

    2.遇到的问题:原始表经纬度是一个字段保存,比如xy列中某行值为“130.111111,33.999999”。

    3.解决的方法:通过xy列中’,‘逗号并使用函数substr()和函数instr() 处理后效果图和SQL示例如下

    SELECT 

        substr(t.xy, 1, instr(t.xy, ',')-1) x,

        substr (t.xy, instr (t.xy, ',')+1) y

    FROM  test t

    4.附注:

    substr函数的用法

    取得字符串中指定起始位置和长度的字符串 ,默认是从起始位置到结束的子串。

    substr( string, start_position, [ length ] )    即:  substr('目标字符串',开始位置,长度)

    instr函数的用法

    格式一:instr( string1, string2 )   即:  instr(源字符串, 目标字符串),本案例是使用此格式。

    格式二:instr( string1, string2 [, start_position [, nth_appearance ] ] )   即:instr(源字符串, 目标字符串, 起始位置, 匹配序号)

    解析:string2 的值要在string1中查找,是从start_position给出的数值(即:位置)开始在string1检索,检索第nth_appearance(几)次出现string2。

    instr是一个非常好用的字符串处理函数,几乎所有的字符串分隔都用到此函数。

    相关文章

      网友评论

        本文标题:关于Oracle中实现单列拆分成多列的技术应用

        本文链接:https://www.haomeiwen.com/subject/lbzvxqtx.html