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