Postgres의 WHERE 절에서 별칭 참조
PostgreSQL에서 WHERE 절에서 별칭을 참조하면 "column does not"와 같은 오류가 발생할 수 있습니다. 존재하다." 이는 SELECT 절에 별칭이 정의되기 전에 WHERE 절이 실행되기 때문에 발생합니다.
이것이 불가능한 이유
SQL에서는 절이 특정 순서로 실행됩니다: WHERE , FROM, GROUP BY, HAVING, SELECT, ORDER BY. 이는 Postgres가 WHERE 절을 발견할 때 SELECT 절에 정의된 별칭에 대해 아직 알지 못한다는 것을 의미합니다.
해결책
이 문제를 해결하려면, WHERE 절에 별칭을 사용하지 않으려면 쿼리를 다시 작성해야 합니다. 대신 비교할 표현식을 직접 지정하십시오. 예를 들어, 다음 쿼리는 정수로 변환된 "pk" 열의 두 번째부터 여섯 번째 문자가 90보다 큰 행을 올바르게 선택합니다.
SELECT SUBSTRING(pk, 6, 2)::INT AS _year FROM listing WHERE SUBSTRING(pk, 6, 2)::INT > 90
참고: 제한은 SELECT 절에 정의된 별칭에만 적용됩니다. FROM, JOIN 등 다른 절에 정의된 별칭은 후속 절에서도 사용할 수 있습니다.
위 내용은 PostgreSQL의 WHERE 절에서 별칭을 올바르게 사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!