programing

'주문 기준'이 지정되지 않은 경우 쿼리가 레코드 집합에 대해 선택하는 순서는 무엇입니까?

oldcodes 2023. 8. 17. 21:52
반응형

'주문 기준'이 지정되지 않은 경우 쿼리가 레코드 집합에 대해 선택하는 순서는 무엇입니까?

저는 항상 '주문 기준' 규칙이 지정되지 않은 쿼리는 where 절에 지정된 결과에 따라 이를 정렬할 것이라는 인상을 받았습니다.

예를 들어, mywhere 절은 다음과 같이 말합니다.

WHERE RESULTS_I_AM_SEARCHING_FOR IN
ITEM 1
ITEM 2
ITEM 3

1번, 2번, 3번 항목에 대해 반환된 결과가 해당 항목에 명시된 순서에 있을 것으로 예상했지만 그렇지 않습니다.지정되지 않았을 때 어떤 순서로 정렬하는지 아는 사람?

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

데이먼

지정하지 않은 경우ORDER BY그러면 정의된 순서가 없습니다.

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

관계형 데이터베이스에는 "자연 질서" 또는 이와 유사한 것이 없습니다(적어도 제가 아는 모든 것에서).신뢰할 수 있는 주문을 얻는 유일한 방법은 명시적으로 지정하는 것입니다.ORDER BY

업데이트: 여전히 나를 믿지 못하는 사람들을 위해 - 여기 이 점을 설명하는 두 개의 훌륭한 블로그 게시물이 있습니다(코드 샘플 포함!):

SQL Server를 사용하는 경우(사용하지 않는 경우ORDER BY를 지정하면 결과가 가능한 가장 빠른 방법으로 반환됩니다.

그러므로 없는.ORDER BY주문에 대해 아무 추측도 하지 않습니다.

이미 말했듯이 "기본 주문"은 존재하지 않기 때문에 절대 의존해서는 안 됩니다.어쨌든 SQL 서버 구현에 대한 자세한 내용을 알고 싶다면 다음을 확인할 수 있습니다.

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

언급URL : https://stackoverflow.com/questions/20050341/when-no-order-by-is-specified-what-order-does-a-query-choose-for-your-record

반응형