>데이터 베이스 >MySQL 튜토리얼 >SQL 쿼리에서 'SELECT TOP 100 PERCENT'를 사용하는 이유는 무엇입니까?

SQL 쿼리에서 'SELECT TOP 100 PERCENT'를 사용하는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-04 03:30:38535검색

Why Use

"상위 100% 선택"을 사용하는 이유는 무엇입니까?

SQL Server 2005 이전에 개발자는 "상위 100% 선택" 트릭을 사용하여 주문 사용을 활성화했습니다. 뷰 정의의 by 절. 그러나 이 목적 외에도 오늘날 상속된 일부 코드에는 ASP.NET 애플리케이션의 ADO 내에서 사용되는 동적 SQL 문에 여전히 "상위 100% 선택"이 포함되어 있습니다.

질문: "를 사용하는 이유가 있습니까? 이 시나리오에서 상위 100%'는 무엇입니까?

답: 중급 구체화

Adam Machanic과 같은 전문가에 따르면 "중간 구체화"에는 "상위 100% 선택"이 사용되었습니다. 그 이유는 다음과 같습니다.

SQL Server에서는 상황에 따라 쿼리를 다른 순서로 평가할 수 있습니다. 예를 들어 다음 두 쿼리는 평가 순서의 모호함으로 인해 서로 다른 결과를 생성할 수 있습니다.

SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1 AND CAST(foo AS int) > 100

SELECT foo
FROM
    (SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1) bar
WHERE
    CAST(foo AS int) > 100

그러나 SQL Server 2005 이전에는 내부 쿼리를 "상위 100% 선택"으로 묶으면 내부 쿼리가 강제로 실행되었습니다. 스풀링되어 일관된 평가 순서가 발생합니다.

SELECT foo
FROM
    (SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar
WHERE
    CAST(foo AS int) > 100

주의 참고

과거에는 이 기술이 허용되었지만 일반적으로 동적 SQL에서는 "상위 100% 선택"을 사용하지 않는 것이 좋습니다. 패치 수준, 스키마, 인덱스 또는 행 수의 변경으로 인해 결과가 일관되지 않을 수 있습니다.

위 내용은 SQL 쿼리에서 'SELECT TOP 100 PERCENT'를 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.