'주문 기준'이 지정되지 않은 경우 쿼리가 레코드 집합에 대해 선택하는 순서는 무엇입니까?
저는 항상 '주문 기준' 규칙이 지정되지 않은 쿼리는 where 절에 지정된 결과에 따라 이를 정렬할 것이라는 인상을 받았습니다.
예를 들어, mywhere 절은 다음과 같이 말합니다.
WHERE RESULTS_I_AM_SEARCHING_FOR IN
ITEM 1
ITEM 2
ITEM 3
1번, 2번, 3번 항목에 대해 반환된 결과가 해당 항목에 명시된 순서에 있을 것으로 예상했지만 그렇지 않습니다.지정되지 않았을 때 어떤 순서로 정렬하는지 아는 사람?
정말 기본적인 질문에 감사하고 죄송합니다!
데이먼
지정하지 않은 경우ORDER BY
그러면 정의된 순서가 없습니다.
결과는 임의의 순서로 반환될 수 있으며 시간이 지남에 따라 변경될 수도 있습니다.
관계형 데이터베이스에는 "자연 질서" 또는 이와 유사한 것이 없습니다(적어도 제가 아는 모든 것에서).신뢰할 수 있는 주문을 얻는 유일한 방법은 명시적으로 지정하는 것입니다.ORDER BY
절
업데이트: 여전히 나를 믿지 못하는 사람들을 위해 - 여기 이 점을 설명하는 두 개의 훌륭한 블로그 게시물이 있습니다(코드 샘플 포함!):
- 코너 커닝햄(Core SQL Server Engine 팀의 설계자):안전 벨트 없음 - 주문 기준 미정의 주문
- Alexander Kuznetsov: 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
'programing' 카테고리의 다른 글
VBA 없이 Excel에서 문자열(셀) 분할(예: 배열 수식) (0) | 2023.08.17 |
---|---|
MariaDB에 sprintf('%+03d:00', $my_number)에 해당하는 것이 있습니까? (0) | 2023.08.17 |
CSS에서 "!important"를 사용하면 어떤 의미가 있습니까? (0) | 2023.08.17 |
채팅에서 "사용자가 입력 중" 기능 (0) | 2023.08.17 |
파일에서 실행 중인 응용 프로그램에 대한 CORS 오류:// 구성표 (0) | 2023.08.17 |