아래 구분을 뷰로 저장하려고 하는데요
order by 절은 뷰 정의의 top 절에서 반환된 행을 결정하는데만 사용 됩니다.. 라고 경고메시지가 나오는데 무슨소린지 잘 모
르겠에요..
그런데 정상 저장은 되고 사용도 됩니다.. 뭔가좀 찝찝한데 걍 써도 될까여?? 아님 좋게 고치는 방법이 있나요?
SELECT ROW_NUMBER() OVER (ORDER BY CC_DATE DESC) AS RNUM, CC_CARD_NAME, COUNT(*) AS cnt,
CC_DATE
FROM dbo.CHARGE
GROUP BY CC_CARD_NAME, CC_DATE
Comment 3
-
select top 100 percent 가 있습니다ㅎㅎ
-
흑흑
2015.01.12 10:28
오오!! 이런방법도 있군요.
top 1000000 이런식으로 사용했었는데 100퍼센트로 사용하면 되겠군요!!
뷰에는 ORDER BY를 쓰지 못합니다.
한가지 예외는 TOP과 함께 쓸때만 쓸 수 있습니다.
예를 들어서 매출순으로 TOP 100위 거래처만 표시하는 뷰... 같은 경우에는
TOP 100 거래처리스트 ..... ORDER BY 매출
이런식으로 쓸 수 있습니다.
혹시 ORDER BY를 쓰려는 이유가 VIEW가 표시하는 데이터를 정렬시키고 싶으신건지요?
3가지 정도 해법이 생각납니다. (성능은 모르겠습니다.)
1. VIEW를 SELECT하면서 ORDER BY를 한다.
2. VIEW를 생성할때 WITH SCHEMABINDING 옵션으로 생성 후 클러스터드 인덱스를 생성한다.
3. TOP에 무지막지한 숫자를 넣는다. 예를 들어서 데이터는 기껏 100건정도 예상이지만 TOP 21억...