database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 3847 게시물 읽기
No. 3847
ORDER BY 쿼리문에서 select 시 top 있고 없고 차이가 생기는데..
작성자
김태형
작성일
2007-11-01 14:54ⓒ
2007-11-01 15:01ⓜ
조회수
3,695

쿼리문은 win/pansu 에 따른 내림차순으로 데이타를 가져오려고 합니다.


쿼리 1. select id,win,pansu from gamedata where pansu <> 0 order by win/pansu desc


쿼리 2. select top 4 id,win,pansu from gamedata where pansu <> 0 order by win/pansu desc


이렇게 쿼리 둘을 던졌을떄


win,pansu 필드는 int 형입니다.(예제 데이타 4개 (1,2) (1,2) (0,2) (0,1))


입력된 레코드 순서는 데이타 3, 데이타 4, 데이타 2, 데이타 1 (입력된 순서에 따라 desc 되는지 확인차)


win/pansu 즉 실수형 order by 를 원했는데 쿼리 1 에선 나름대로(?) 원하는 정렬이 나오는데


쿼리2에선 모두 정렬값이 0으로 인식되어 입력된 순서에 따라 내림차순 정렬이 되더군요.


일단 질문 top 있을때 정수로 모두 같은 값으로 인식해서 입력순서(키값에 따른 입력순서)에 따라 결과가 나오고


top 없을때 그나마 제가 원하는 순서대로 나오더랍니다.(문제 접근 order by 가 정수로 체크가 되었다면 모두 같은 결과여야 하는데)


이 부분은 아직 알수 없는 애매한 부분이라 질문을 드립니다. 고수님들의 답을 기다리며


최종 결론 쿼리 3. select top 4 id,win,pansu,convert(float,win) / convert(float,pansu) as aa from gamedata where pansu <> 0 order by aa desc


하면 top이 있고 없고 상관없이 원하는 값이 나오던군요.


이 글에 대한 댓글이 총 1건 있습니다.



쿼리를 잠시 살펴봤는데


지금 같은것이면 당연히 문제가 발생을 합니다.


실수정렬을 위한 / 이것이 문제인것 같습니다.


조금 수정을 하면


select a.id, a.win a.panus from gamedata

inner jon (

select id, win/panus as f_order

from gamedata ) as b

on a.id = b.id

order by b.f_order desc


이렇게 하시면 원하는결과로 될거라 생각이 듭니다.


해보지는 않았지만 ^^:


그리고 지금 같으시면 테이블 리턴함수를 하나 만들어서 하시는게 깔끔하게 처리 될듯 같습니다.

김병석(byung82)님이 2007-11-09 00:12에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
3850한글을 2Byte를 1Byte 씩 ASCII로 읽는 방법 [1]
N3O
2007-11-04
4963
3849열데이터를 행데이터로 넣고 싶은데요. [2]
새신랑
2007-11-02
3455
38483개 테이블 연결 쿼리 질문입니다. [1]
Wenzie
2007-11-02
3405
3847ORDER BY 쿼리문에서 select 시 top 있고 없고 차이가 생기는데.. [1]
김태형
2007-11-01
3695
3846대용량 DB의 페이징 쿼리문과 인덱스에 대해 궁금합니다. [1]
11월
2007-11-01
3780
3845오라클 Crate Table .. AS Select ... 문과 같은것 있나요? [3]
jetsetty
2007-11-01
3544
3844랜덤하게 10%를 특정값이 지정된 값으로 변경
장기주
2007-10-31
3258
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다