집 >데이터 베이스 >MySQL 튜토리얼 >SQL WHERE 절에서 별칭을 사용할 수 있나요?
WHERE 절에서 별칭 참조
SQL에서는 쿼리 내 명령문의 실행 순서가 중요합니다. 특히 WHERE 절은 SELECT 문보다 먼저 실행됩니다. 즉, WHERE 절에서 별칭을 참조할 때는 별칭을 사용하기 전에 정의되어 있어야 합니다.
원래 쿼리 및 오류
다음 쿼리는 WHERE 절에 별칭(_year)을 사용합니다.
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE _year > 90
그러나 이 쿼리는 오류:
ERROR: column "_year" does not exist LINE 1: ...STRING (pk, 6, 2)::INT AS _year FROM listing WHERE _year > 90... ^ ********** Error ********** ERROR: column "_year" does not exist
이 오류는 SELECT 문까지 별칭(_year)이 정의되지 않았기 때문에 발생합니다.
한계를 극복
SQL 문의 실행 순서로 인해 WHERE 절에서 별칭을 직접 참조하는 것은 불가능합니다. 이러한 제한을 피하려면 다음과 같이 쿼리를 다시 작성하십시오.
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE SUBSTRING(pk, 6, 2)::INT > 90
이 쿼리에서는 _year를 계산하는 표현식이 WHERE 절에서 반복됩니다. 별칭을 사용하는 것만큼 간결하지는 않지만 _year 값이 비교에 사용되기 전에 계산됩니다.
위 내용은 SQL WHERE 절에서 별칭을 사용할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!