SELECT * FROM
( SELECT
ROW_NUMBER() OVER (ORDER BY F_CATEGORY ASC) AS ROW_NUM
,idx
,objProperty
,midx
,category
,secret
,author
,e_mail
,homepage
,subject
,docType
,regDate
,editDate
,latestDate
,memoNum
,readNum
,vote
,re_level
,fileName1
,contents
, case
WHEN category = '노트북문의' THEN '1'
WHEN category = 'AS요청' THEN '2'
WHEN category = '기타사항' THEN '3'
END AS F_CATEGORY
FROM
_board_computer
WHERE objProperty = ''
) T
WHERE T.ROW_NUM BETWEEN 0 AND 50 ORDER BY T.F_CATEGORY ASC
임의로 만든 F_CATEGORY 컬럼을 기준으로 ROW_NUM 생성후
BETWEEN을 이용해서 건수 가져오는 쿼리인데..
자꾸에러나네용,,,ㅠㅠ
저렇게 쓰는게 아닌가요?
고수님들 도와주세요 ㅠㅠㅠㅠㅠ
Comment 3
-
눈을뜨자
2013.05.07 11:45
-
건우아빠
2013.05.07 12:46
(CASE category
WHEN '노트북문의' THEN '1'
WHEN 'AS요청' THEN '2'
WHEN '기타사항' THEN '3'
END) AS F_CATEGORY -
진윤호
2013.05.08 14:07
SELECT * FROM (
SELECT ROW_NUMBER() OVER (ORDER BY F_CATEGORY ASC) AS ROW_NUM , * FROM
( SELECT
idx
,objProperty
,midx
,category
,secret
,author
,e_mail
,homepage
,subject
,docType
,regDate
,editDate
,latestDate
,memoNum
,readNum
,vote
,re_level
,fileName1
,contents
, case
WHEN category = '노트북문의' THEN '1'
WHEN category = 'AS요청' THEN '2'
WHEN category = '기타사항' THEN '3'
END AS F_CATEGORY
FROM
_board_computer
WHERE objProperty = ''
) AS T) AS T2
WHERE T2.ROW_NUM BETWEEN 0 AND 50
제가 고수를 아니지만 이렇게 하면 될껍니다.
SELECT * FROM
( SELECT
ROW_NUMBER() OVER (ORDER BY
(case
WHEN category = '노트북문의' THEN '1'
WHEN category = 'AS요청' THEN '2'
WHEN category = '기타사항' THEN '3'
END)
ASC) AS ROW_NUM
:
:
, case
WHEN category = '노트북문의' THEN '1'
WHEN category = 'AS요청' THEN '2'
WHEN category = '기타사항' THEN '3'
END AS F_CATEGORY
FROM
_board_computer
WHERE objProperty = ''
) T
WHERE T.ROW_NUM BETWEEN 0 AND 50 ORDER BY T.F_CATEGORY ASC
물론 보긴 별루 않좋지만 이렇게 두번을 사용하시던가 아니면 우선 case 를 사용한 select를 다시 select를 하시면 됩니다.