>데이터 베이스 >MySQL 튜토리얼 >PostgreSQL의 WHERE 절에서 별칭을 올바르게 사용하려면 어떻게 해야 합니까?

PostgreSQL의 WHERE 절에서 별칭을 올바르게 사용하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-28 06:10:10583검색

How Can I Correctly Use Aliases in PostgreSQL's WHERE Clause?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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