WITH A_CTE AS (
SELECT
ROW_NUMBER() OVER ( ~~ ) AS ordNum,*
FROM (
SELECT ROW_NUMBER() OVER (~~) AS ordNum , 컬럼들 FROM a_table
)
)
,B_CTE AS (
SELECT TOP 100 PERCENT
ROW_NUMBER() OVER ( ~~ ) AS rownum, t.*
FROM (
SELECT 컬럼들 FROM A_CTE cte1
LEFT OUTER JOIN A_CTE cte2
ON 조인 조건들..
)
)
이런식으로 2개의 CTE를 선언한후 (조인을 비롯한 복잡한것은 생략하고 구조만 작성했습니다.)
바로 밑에서
SELECT * FROM B_CTE
WHERE rownum > 0
이렇게 가지고 오는건데요~
rownum 으로 잘라서 가져와야 하는데 rownum 이 들어가는 조건만 주면 결과가 아무것도 안나옵니다...
rownum 조건 빼고 그냥 SELECt * FROM B_CTE 만 해주면 결과가 18개 분명히 조회 되거든요... 1부터 18까지 rownum 컬럼에 분명 값 있구요..
웃긴건 rownum을 제외한 다른컬럼으로 조건을 주면 해당 조건에 맞게 잘 나온다는것입니다..
심지어 결과가 분명 나오는 조건문에 rownum이 들어간 조건을 OR로 이어서 붙여도 결과가 나오질 않습니다...
원하는것은 단지 B_CTE 에서 나온 결과를 rownum으로 잘라서 가져오고 싶은것뿐인데... 이것때문에 하루를 소비했는데도 해결 못했어요 ㅜㅜ
고수분들 도와주세요... |