2
누구나 볼 수있는 SQL Server 2008 동작을 설명 할 수 있습니까? 간단한 테이블 정의 감안할 때SQL Server 2008 : SELECT TOP을 사용하는 예기치 않은 결과
:
Column Type Nullability
id (PK) int not null
author_id int null
title varchar(255) not null
body varchar(MAX) not null
type varchar(255) null
comments_count int null
"SELECT * 게시물의 순서와 comments_count DESC BY는"반환
id author_id title comments_count
--- ---------- ----------------------------------- --------------
1 1 Welcome to the weblog 2
2 1 So I was thinking 1
3 0 I don't have any comments 0
4 1 sti comments 0
5 1 sti me 0
6 1 habtm sti test 0
7 2 eager loading with OR'd conditions 0
하지만 돌아갑니다 "comments_count DESC에 의해 TOP 3 * 게시물 FROM ORDER 선택" : 내가 기대하는 것처럼
id author_id title comments_count
--- ---------- ----------------------------------- --------------
1 1 Welcome to the weblog 2
2 1 So I was thinking 1
4 1 sti comments 0
대신 행 ID 1, 2 returnsing의
3. comments_count
열로 정렬시
감사 닉
그것은 당신이 명시 적으로 다음 순서를 지정하지 않은 경우가 심지어 다른 일관성이 보장되지 않는다는 것을 언급도 아마 가치 :
난 당신이 특정 순서를 원하는 경우이 순서를 지정 제안 쿼리를 실행합니다. 다음에'ID'가'ORDER BY' 절에 포함되지 않으면 세 번째 행은'3'에서'7'까지의 ID 중 하나 일 수 있습니다. – LukeH
@ 루케 : 당신이 방금 언급했다고 생각합니다. :-) –
지워 줘서 고마워. 내 자신과 같이 DBA가 아닌 사람들 사이에 일반적인 오해가있는 것처럼 보입니다. –