집 >데이터 베이스 >MySQL 튜토리얼 >SQL의 HAVING 절에서 별칭을 사용할 수 없는 이유는 무엇입니까?
HAVING 절에서 별칭 사용의 한계 이해
SQL에서는 HAVING 절 내 집계에 별칭을 활용하는 것이 직관적으로 보일 수 있습니다. 그러나 이 접근 방식을 사용하면 SQL 쿼리의 특정 평가 순서로 인해 "잘못된 열 이름" 오류가 발생합니다.
이 제한 사항을 이해하려면 SQL이 쿼리를 실행하는 방식을 이해하는 것이 중요합니다.
따라서 HAVING 절이 SELECT 절보다 먼저 평가되므로 SELECT 문의 집계에 할당된 별칭(예: "col7") )은 HAVING 표현식을 평가할 때 SQL에 아직 알려지지 않았습니다. 결과적으로 "잘못된 열 이름 'col7'" 오류가 발생합니다.
반대로 ORDER BY 절은 SELECT 문 다음에 평가되므로 SELECT 절에 정의된 별칭을 사용할 수 있습니다. 이는 ORDER BY 절이 SELECT 문으로 생성된 결과 집합에 대해 작동하기 때문입니다.
이 문제를 해결하려면 아래와 같이 HAVING 절의 별칭을 실제 집계 표현식으로 바꾸세요.
select col1,count(col2) from --some join operation group by col1 having count(col2) >= 3
위 내용은 SQL의 HAVING 절에서 별칭을 사용할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!