沈阳旅游项目中的技术总结
在本次项目中 使用的是oracle 数据库 使用到了一个函数行转列的函数wm_concat()
该函数可以把列值以","号分隔起来,并显示成一行
1. select wm_concat(name) from test;
2. WM_CONCAT(NAME)
3. ----- a,b,c,d,e
由于需要匹配另外一张表的多个值匹配的sql比较麻烦
withsplit_data as (
select a,key, rn, substr(str, instr(str, ',', 1,rn)+1,
instr(str, ',', 1, rn+1) - instr(str, ',', 1, rn) -1) str
from (select a,a_urs_id key,','||a_urs_id||',' str from test) a,
(select rownum rn from dualconnect by rownum < 10) b
where instr(str, ',', 1, rn+1) > 0 )
select a,key, substr(max(sys_connect_by_path(urs_name, ',')), 2)a_name
from split_data a, test1 b
where a.str = b.urs_id
start with rn = 1
connect by key = prior key and rn-1 = prior rn
group by a,key;
但是由于在生产环境下该条sql跑的较慢故改成分布执行完成该业务
1 查询出 数据库中 景区路线的数据
2 在代码中以stream()的方式遍历构造地图的数据格式 以此来完成业务