我希望得到跟踪和领先记录达到匹配条件。 我想得到
empid last_nm
----------- -------------------------
179 Johnson
180 Taylor Maddy
178 Grant Son
34 John
180 Taylor Ross
178 Mia
179 Rocky
如何在这里添加
例如:select * from emp where empid=34
我只得到emp_id
为34,last_nm
为约翰
emp
表包含记录
empid last_nm
----------- -------------------------
178 Graham
179 Johnson
180 Taylor Maddy
178 Grant Son
34 John
180 Taylor Ross
178 Mia
179 Rocky
180 Siva
答案 0 :(得分:1)
您可以使用ROWNUM
伪列和MAX() OVER ()
分析函数执行此操作:
SELECT empid,
last_nm
FROM (
SELECT e.*,
MAX( CASE WHEN empid = 34 THEN ROWNUM END ) OVER () AS matched_rn,
ROWNUM AS rn
FROM employees e
)
WHERE rn BETWEEN matched_rn - 3 AND matched_rn + 3;