안녕하세요 저번에 같은 문제로 질문을 했었는데 지금은 페이징 쿼리에 적용을 해야되는데 어떻게 해야되는지 몰라서 질문올립니다
JUMSUTABLE
==============
KWAMOK | jumsu
국어 68
수학 수
사회 우
자연 78
과학 미
탐구생활 87
역사 45
JUMSUTABLE
==============
KWAMOK | jumsu
국어 68
수학 수
사회 우
자연 78
과학 미
탐구생활 87
역사 45
$StartCount = ( ($Page-1) * $PageRow) + 1;
$EndCount = ( ($Page-1) * $PageRow) + $PageRow;
Select * From (";
Select ROW_NUMBER() OVER (order by jumsu desc) AS RowNum,
jumsu
From JUMSUTABLE
) as X "
Where RowNum BETWEEN {$StartCount} AND {$EndCount}
Select ROW_NUMBER() OVER (order by jumsu desc) AS RowNum,
jumsu
From JUMSUTABLE
) as X "
Where RowNum BETWEEN {$StartCount} AND {$EndCount}
제가 하고싶은건 아래와 같습니다
KWAMOK | jumsu
====================
탐구생활 87
자연 78
국어 68
역사 45
수학 수
사회 우
과학 미
====================
탐구생활 87
자연 78
국어 68
역사 45
수학 수
사회 우
과학 미
숫자가 먼저 한글이 나중에 정렬하고 싶습니다
부탁드리겠습니다
참고로 저번에 알려준걸 ROW_NUMBER() OVER (order by jumsu desc) AS RowNum
여기에 적용하니까 안되더라구요
여기에 적용하니까 안되더라구요
Comment 8
-
건우아빠
2016.09.04 19:47
-
문상연
2016.09.05 09:11
Select * From (";
Select ROW_NUMBER() OVER (order by jumsu desc) AS RowNum,
jumsu
From JUMSUTABLE
) as X "
Where RowNum BETWEEN {$StartCount} AND {$EndCount}페이징 쿼리에OVER (order by jumsu desc) AS RowNum, --> 여기에 님이 알려주신 대로 order by 구문을 넣으면'기간 이동 함수는 다른 기간 이동 함수 또는 집계의 컨텍스트에서 사용할 수 없습니다.'위와 같은 에러가 발생합니다어떻게 하면 되낭요? -
건우아빠
2016.09.05 09:43
;with tblA(KWAMOK , jumsu ) As(Select '국어' , '68' Union AllSelect '수학' , '수' Union AllSelect '사회' , '우' Union AllSelect '자연' , '78' Union AllSelect '과학' , '미' Union AllSelect '탐구생활' , '87' Union AllSelect '역사' , '45') ,result as(Select a.KWAMOK, a.jumsu, ISNUMERIC( a.jumsu ) seq01, case ISNUMERIC( a.jumsu )when 1 then row_number() over ( order by a.jumsu desc )when 0 then row_number() over ( order by case a.jumsuwhen '수' then 1when '우' then 2when '미' then 3when '양' then 4when '가' then 5end asc ) end seq02From tblA a)select * , row_number() over ( order by seq01 desc, seq02 asc ) AS RowNumfrom result -
문상연
2016.09.05 11:41
php상애서
result as(Select a.KWAMOK, a.jumsu, ISNUMERIC( a.jumsu ) seq01, case ISNUMERIC( a.jum....................이게 되나요? -
건우아빠
2016.09.05 11:54
1.가능 합니다
2. 뷰로 이용
3. 프로시저이용 추천 -
문상연
2016.09.05 16:16
죄송하지만 위 구문을 테스트를 먼저 할려고 하는데 SQL Server Management Studio 에서 구현해보고 싶은데 어떻게 하면 되나요?
-
건우아빠
2016.09.05 17:58
답글을 카피해서 테스트 하시면 되는데 실제 테이블을 가지고 테스트 하신다는 말씀이신지...
아래 이부분은 테스트 하기 위해 자료입니다.
;with tblA(KWAMOK , jumsu ) As
(
Select '국어' , '68' Union All
Select '수학' , '수' Union All
Select '사회' , '우' Union All
Select '자연' , '78' Union All
Select '과학' , '미' Union All
Select '탐구생활' , '87' Union All
Select '역사' , '45'
)
-
문상연
2016.09.06 15:02
정말 고맙습니다
수 , 우, 미, 양, 가는 우리나라만 아는 기준이기 때문에 이것에 대한 별도 기준을 주어야 합니다.
;with tblA(KWAMOK , jumsu ) As
(
Select '국어' , '68' Union All
Select '수학' , '수' Union All
Select '사회' , '우' Union All
Select '자연' , '78' Union All
Select '과학' , '미' Union All
Select '탐구생활' , '87' Union All
Select '역사' , '45'
)
Select a.KWAMOK, a.jumsu
From tblA a
Order By ISNUMERIC( a.jumsu ) desc
, case ISNUMERIC( a.jumsu )
when 1 then row_number() over ( order by a.jumsu desc )
when 0 then row_number() over ( order by case a.jumsu
when '수' then 1
when '우' then 2
when '미' then 3
when '양' then 4
when '가' then 5
end asc ) end