앗... 하루가 지난거 같은데.. 아직도.. 답이 엄네여..^^a (그사이 또 누가 쓸런지도..^^;;) 하여가네.. 랭킹하는 방법은 여러가지가 있죠.. 카렌 아줌마 Inside SQL 2K 보시면.. 랭킹 방법에 대해서.. 3~4가지가 나와 있습니다.. 항상 느끼는거지만.. 오라클의 ROWNUM 비스무리한넘 있으면 좋으련만.. 하는 생각과.. 8i R2 부터 있는 Analytic Function 있으면 ... 좋겠다는 생각이 매번 듭니다.. 하지만 SQL Server에는 이런것이 없기 때문에 모.. 있는거 잘 활용해서 써야겠죠.. 우선.. 테이블 복제인데.. CREATE TABLE 에서 AS로 SELECT 해서 쓰는 문장은 오라클 문법인듯 하네여..^^a 님께서 원하시는 방법으로 SQL 서버에는 SELECT * INTO rank FROM Table1 WHERE 조건 ORDER BY 점수 DESC; 이렇게 하면 tank 라는 테이블이 만들어 지게 됩니다... 만일 위의 것을 이용해서 한다면, 더더군다나 주기적으로 갈아 엎어 져야 한다면.. rank 테이블을 따로 만드는것도 좋을듯하네요... SELECT 아디디, indentity(int, 1, 1) as rank INTO rank FROM Table1 WHERE 조건 ORDER BY 점수 DESC; 라고 하게 되면 점수 순서에 따라 아이디와 랭킹이 매겨 지게 됩니다.. 필요할 경우 기존 사용자 정보와 조인해서 가져가면되고 사용자 테이블을 매번 수정안해도 되니까.. 부하를 줄일수 있지만서도, 대번 테이블을 Drop 하고 위의 문장을 실행시켜야하는 문제가 좀 있죠.. 또하나의 문제는 동일 점수에 대한 동일 랭킹이 안된다는 문제가 남아 있고요.. 님께서 중간에 쓰셨던.. Sunquery를 사용해서 랭킹을 사용하시는게.. 비록 테이블을 두번 읽어야 하는 문제가 있긴하지만... 같은 점수에 대해 동일한 랭킹을 부여할 수 있겠죠.. 대충.. 이정도... ^^ __________________________________________
황순영 (Hwang, Soon-Young), MVP, MCP Manager of (C)Dotnetsoft
Mobile : 016-745-0297 E-Mail : syhwang@dotnetsoft.co.kr MSN : stonefly2001@hotmail.com __________________________________________ |