现在的表结构式这样的 id name superid level
37353 千阳县 1 1
38044 37353 2
39302 南寨镇 38044 3
43009 闫家村 39302 4
46447 6组 43009 5 地址是存储在树形结构表中
地址组合后是 千阳县 南寨镇闫家村6现在要求模糊查询地址 比如 %南寨%
%南寨镇闫家% 等 。请教高手 解答 在线等
37353 千阳县 1 1
38044 37353 2
39302 南寨镇 38044 3
43009 闫家村 39302 4
46447 6组 43009 5 地址是存储在树形结构表中
地址组合后是 千阳县 南寨镇闫家村6现在要求模糊查询地址 比如 %南寨%
%南寨镇闫家% 等 。请教高手 解答 在线等
select wm_concat(name)wn from
(select * from tt order by level))
where wn like '%南寨镇闫家%'
在#2基础上,
select id from (select id,row_number() over(order by level desc) rn from table where instr(wn,name) > 0)
where rn = 1;
这样性能会好一些。
select id from(
select max(case when ld is null
then id end)id,
wm_concat(name)wn from (
select id,lead(id)over(partition by rownum-level order by level1)ld,
name,rownum-level rn from t1
start with level1=1
connect by prior id=superid)
group by rn)
where wn like '%南寨%'
改成
replace(wm_concat(name),',','')wn
语句是写出来,但是oracle 内部报了个错误,应该是嵌套太多,重启后可以
为了保险不使用这样的方法!