WITH tree_query AS (
SELECT
seq
, ref
, title
, [content]
, step
, ref_order
, cdate
, cuser
, rcount
, convert(varchar(255), seq) sort
, convert(varchar(255), title) depth_fullname
FROM emergency_board
WHERE ref = 0
UNION ALL
SELECT
B.seq
, B.ref
, B.title
, B.[content]
, B.step
, B.ref_order
, B.cdate
, B.cuser
, B.rcount
, convert(varchar(255), convert(nvarchar,C.sort) + ' > ' + convert(varchar(255), B.seq)) sort
, convert(varchar(255), convert(nvarchar,C.depth_fullname) + ' > ' + convert(varchar(255), B.title)) depth_fullname
FROM emergency_board B, tree_query C
WHERE B.ref = C.seq
) SELECT seq, ref, title, [content], step, ref_order, cdate, cuser, rcount FROM tree_query
order by SORT desc
이럭식으로 데이터를 추출했습니다. 그런데 페이징을 할려고 하니 row_number() over(order by seq) "where" 조건문안에서 사용을
못하네요.. 혹시 페이징처리할 수 있게 방법즘 알려주세요 ㅠㅠ.
SELECT
seq
, ref
, title
, [content]
, step
, ref_order
, cdate
, cuser
, rcount
, convert(varchar(255), seq) sort
, convert(varchar(255), title) depth_fullname
FROM emergency_board
WHERE ref = 0
UNION ALL
SELECT
B.seq
, B.ref
, B.title
, B.[content]
, B.step
, B.ref_order
, B.cdate
, B.cuser
, B.rcount
, convert(varchar(255), convert(nvarchar,C.sort) + ' > ' + convert(varchar(255), B.seq)) sort
, convert(varchar(255), convert(nvarchar,C.depth_fullname) + ' > ' + convert(varchar(255), B.title)) depth_fullname
FROM emergency_board B, tree_query C
WHERE B.ref = C.seq
) SELECT seq, ref, title, [content], step, ref_order, cdate, cuser, rcount FROM tree_query
order by SORT desc
이럭식으로 데이터를 추출했습니다. 그런데 페이징을 할려고 하니 row_number() over(order by seq) "where" 조건문안에서 사용을
못하네요.. 혹시 페이징처리할 수 있게 방법즘 알려주세요 ㅠㅠ.
Comment 3
-
호박아
2015.04.17 11:02
서브쿼리에 적용해보라고 하셨는데 어디에 적용해야하는건가요?
-
호박아
2015.04.17 11:39
select * from (SELECT seq, ref, step, ref_order, title, row_number() over(order by sort) as rnum, sort FROM tree_query ) a
where rnum between 1 and 1
order by a.sort desc이런식으로 해결했습니다. 머리가 갑자기 안굴러 간거 같네요.... 이렇게 쉽게 처리가 되는데 아......
답변 감사합니다.
순위함수를 WHERE 절에 바로는 못쓰고요.
서브쿼리에 적용해보세요.