복붙노트

[SQL] 더 '에 의한 주문'이 지정되지 않은 경우, 어떤 순서로 쿼리는 레코드 집합에 대한 선택 하는가?

SQL

더 '에 의한 주문'이 지정되지 않은 경우, 어떤 순서로 쿼리는 레코드 집합에 대한 선택 하는가?

나는 당신의 where 절에서 지정된 어떤 규칙없이 지정된 '에 의해 주문과 쿼리에 의해 결과가이 주문 것이라고 항상 인상이었다.

예를 들어, 내 절은 말합니다 :

WHERE RESULTS_I_AM_SEARCHING_FOR IN
ITEM 1
ITEM 2
ITEM 3

나는 그러나 그렇지 않은 경우, 항목 1, 2, 3에 대해 반환 된 결과에 지정된 순서대로 될 것이라고 상상했을 것이다. 누군가가 지정되지 않은 경우에 그들을 정렬 순서 알고 있나요?

감사합니다 정말 기본적인 질문에 대한 죄송합니다!

데이먼

해결법

  1. ==============================

    1.당신은 주문 BY를 지정하지 않으면 NO ORDER 정의가있다.

    당신은 주문 BY를 지정하지 않으면 NO ORDER 정의가있다.

    결과는 임의의 순서로 반환 할 수 있습니다 - 그리고도 시간이 지남에 따라 변경 될 수 있습니다.

    (내가 아는 것을 모두 적어도) 관계형 데이터베이스처럼 더 "자연 질서"또는 아무것도 없다. 신뢰할 수있는 순서를 얻을 수있는 유일한 방법은 명시 적으로 ORDER BY 절을 지정하는 것입니다.

    업데이트 : 사람들을 위해 아직도 저를 믿지 않는 사람들 - 여기이 점을 설명이 우수 블로그 게시물입니다 : (코드 샘플을!)

  2. ==============================

    2.더 주문 BY가 지정되지 않은 경우 SQL Server를 사용, 결과는 가능한 가장 빠른 방법으로 반환됩니다.

    더 주문 BY가 지정되지 않은 경우 SQL Server를 사용, 결과는 가능한 가장 빠른 방법으로 반환됩니다.

    따라서 주문 BY없이, 순서에 대해 어떠한 가정도하지 않습니다.

  3. ==============================

    3.그것은 이미 존재하지 않기 때문에 당신이 "기본 순서"에 의존해서는 안 말한 것처럼. 당신은 여전히 ​​SQL 서버 구현에 대한 몇 가지 흥미로운 세부 사항을 알고 싶은 어쨌든 경우이 작업을 확인하실 수 있습니다 :

    그것은 이미 존재하지 않기 때문에 당신이 "기본 순서"에 의존해서는 안 말한 것처럼. 당신은 여전히 ​​SQL 서버 구현에 대한 몇 가지 흥미로운 세부 사항을 알고 싶은 어쨌든 경우이 작업을 확인하실 수 있습니다 :

    http://exacthelp.blogspot.co.uk/2012/10/default-order-of-select-statement-in.html

  4. from https://stackoverflow.com/questions/20050341/when-no-order-by-is-specified-what-order-does-a-query-choose-for-your-record by cc-by-sa and MIT license