SELECT V.EMPLOYEE_NAME
from USER.EMPLOYEES_V V
WHERE to_char(V.EMPLOYEE_ID) in (WITH A AS (SELECT (SELECT R.REMARK_EMPS
FROM USER.INFO R
WHERE R.RULE_ID = 4171/*得到字符转数组*/) A
FROM DUAL)
SELECT DECODE(B, 0, SUBSTR(A, C), SUBSTR(A, C, B - C))
FROM (SELECT A, B, (LAG(B, 1, 0) OVER(ORDER BY LV)) + 1 C
FROM (SELECT A, INSTR(A, ',', 1, LEVEL) B, LEVEL LV
FROM A
CONNECT BY LEVEL <=
(LENGTH(A) - LENGTH(REPLACE(A, ',', ''))) + 1)))
from USER.EMPLOYEES_V V
WHERE to_char(V.EMPLOYEE_ID) in (WITH A AS (SELECT (SELECT R.REMARK_EMPS
FROM USER.INFO R
WHERE R.RULE_ID = 4171/*得到字符转数组*/) A
FROM DUAL)
SELECT DECODE(B, 0, SUBSTR(A, C), SUBSTR(A, C, B - C))
FROM (SELECT A, B, (LAG(B, 1, 0) OVER(ORDER BY LV)) + 1 C
FROM (SELECT A, INSTR(A, ',', 1, LEVEL) B, LEVEL LV
FROM A
CONNECT BY LEVEL <=
(LENGTH(A) - LENGTH(REPLACE(A, ',', ''))) + 1)))
本文介绍了一个复杂的SQL查询案例,该查询通过多层嵌套及WITH子句实现了从员工信息表中筛选特定员工的过程。涉及的技术点包括:使用WITH子句进行临时表定义、字符串操作函数的使用、子查询及连接查询等高级SQL技巧。
4444

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



