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
운영게시판
최근게시물
Sybase Q&A 2100 게시물 읽기
No. 2100
질문하나 더 드립니다..^^;;
작성자
천적
작성일
2007-11-23 10:29
조회수
6,528

Sybase 12.5입니다. 12.5부터는 top이 먹더군요. set rowcount 10 이렇게 안해도 되고 편하더라고요...ㅋㅋ

selet top 10
        1,
        2,
        3
from aaa
union all
select top 10
        1,
        2,
        3
from bbb

이렇게 하면 20건이 정상적으로 조회가 됩니다. 그런대 
selet top 10
        1,
        2,
        3
from aaa
union all
select top 10
        1,
        2,
        3
from bbb
order by 1

이렇게 하면 10건만 조회가 되더라고요....
그래서 
select 
         1,
         2,
         3
from(
    selet top 10
            1,
            2,
            3
    from aaa
    union all
    select top 10
            1,
            2,
            3
    from bbb
)
order by 1

이렇게 해도 10건만 조회가 됩니다. 물론 order by 를 빼면 20건이 조회가 됩니다.

--> 제가 뽑고 싶은 결과는 aaa에서 order by 1의 숫자로 10건 bbb에서 order by 1의 숫자로 10건이 필요합니다.
생각해 보면 위의 쿼리도 맞는것은 아닙니다. 
    selet top 10
            1,
            2,
            3
    from aaa
order by 1
    union all
    select top 10
            1,
            2,
            3
    from bbb
order by 1 
제가 원하는건 이거지만 이렇게 먹지를 안더라고요...^^;;

궁금한건 
1. 왜 order by만 들어모녀 10건만 결과값이 나오는걸까요?? 옵티마이저가 내부적으로 어떻게 작동을 하길래 이렇게 나오는건가요??
대충 plan을 떠서 보니깐 order by일 경우는 worktable1을 쓰던대 정확한 해석은 잘 모르겠더라고요..^^;(실력이 아직 부족해서...ㅜ.ㅜ)

2. 제가 원하는건 aaa에서 sorting해서 상위 10개 bbb에서 sorting해서 상위 10개가 필요합니다. union all로는 불가능한가요?
꼭 임시테이블이나 다른곳으로 하나씩 빼서 해야 하는건지 궁금합니다.

그럼 고수님들의 고견 부탁드립니다.

[Top]
No.
제목
작성자
작성일
조회
2103image type 컬럼..
송경훈
2007-11-27
6310
2102특정월의 일자수와 요일수 구하는법 조언부탁드립니다. [1]
질문자
2007-11-23
6740
2101이런 조회 조건은 어떻게 하면 구현할수 있을까요? [2]
이승현
2007-11-23
7116
2100질문하나 더 드립니다..^^;;
천적
2007-11-23
6528
2099쿼리 분석좀 해주세요...^^;; [2]
천적
2007-11-23
7212
2098ODBC 접속 에러입니다.
박효진
2007-11-21
7046
2096bcp in 할때 텍스내용에 사이즈 제한이? [2]
궁금이
2007-11-20
6897
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다