SELECT substr(PBTYPE, instr(PBTYPE, ',', 1, levels.lvl) + 1, instr(PBTYPE, ',', 1, levels.lvl + 1) -(instr(PBTYPE, ',', 1, levels.lvl) + 1)) as PBTYPE
FROM
(SELECT ',' || PBTYPE || ',' AS PBTYPE,length(PBTYPE) - nvl(length(REPLACE(PBTYPE, ',')), 0) + 1 AS cnt FROM PM_PRODUCT_CHANNEL WHERE PRODUCT_CODE=#{productCode}) a,
(SELECT rownum AS lvl FROM (SELECT MAX(length(PBTYPE || ',') - nvl(length(REPLACE(PBTYPE, ',')), 0)) max_len FROM PM_PRODUCT_CHANNEL) CONNECT BY LEVEL <= max_len) levels
WHERE levels.lvl <= a.cnt


本文深入探讨了使用SQL进行子串查询的高级技巧,通过具体示例展示了如何从产品渠道类型字段中精确提取层级信息。这涉及到SQL的子串函数、正则表达式替换以及连接查询的综合应用。
2428

被折叠的 条评论
为什么被折叠?



