>데이터 베이스 >MySQL 튜토리얼 >PostgreSQL WHERE 절에서 오류 없이 별칭을 사용하는 방법은 무엇입니까?

PostgreSQL WHERE 절에서 오류 없이 별칭을 사용하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-20 20:16:16313검색

How to Use Aliases in PostgreSQL WHERE Clauses Without Errors?

PostgreSQL WHERE 절에서 별칭을 사용할 때 "열이 존재하지 않습니다" 오류 방지

별칭이 WHERE 목록에 정의되어 있어도 SELECT 절 내에서 별칭을 사용하면 PostgreSQL 쿼리에서 "열이 존재하지 않습니다" 오류가 발생할 수 있습니다. 이는 WHERE 목록 전에 SELECT 절이 처리되기 때문에 발생합니다. 즉, 별칭이 아직 인식되지 않음을 의미합니다.

이를 극복하려면 WITH 절(공용 테이블 표현식 또는 CTE라고도 함)을 사용하세요. WITH 절은 임시 명명된 결과 집합을 생성하여 기본 쿼리 내에서 별칭을 참조할 수 있도록 합니다.

다음은 솔루션을 보여주는 예입니다.

<code class="language-sql">WITH jobs_with_lead_state AS (
    SELECT
        jobs.*,
        CASE WHEN lead_informations.state IS NOT NULL THEN lead_informations.state ELSE 'NEW' END AS lead_state
    FROM jobs
    LEFT JOIN lead_informations
        ON lead_informations.job_id = jobs.id
        AND lead_informations.mechanic_id = 3
)
SELECT *
FROM jobs_with_lead_state
WHERE lead_state = 'NEW';</code>

이 수정된 쿼리는 jobs_with_lead_state이라는 CTE를 정의합니다. CTE는 초기 SELECTJOIN 작업을 수행하여 lead_state 별칭을 생성합니다. 그런 다음 기본 쿼리는 이 CTE를 사용하여 WHERE 절이 lead_state을 올바르게 참조할 수 있도록 합니다. 이 접근 방식은 WHERE 절 평가

중에 별칭을 사용할 수 있도록 하여 오류를 방지합니다.

위 내용은 PostgreSQL WHERE 절에서 오류 없이 별칭을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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