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

作者 : 开心源码 本文共640个字,预计阅读时间需要2分钟 发布时间: 2022-05-12 共195人阅读

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是一个非常好用的字符串解决函数,几乎所有的字符串分隔都用到此函数。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 关于Oracle中实现单列拆分成多列的技术应用

发表回复