집 >데이터 베이스 >MySQL 튜토리얼 >PostgreSQL WHERE 절에서 오류 없이 별칭을 사용하는 방법은 무엇입니까?
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는 초기 SELECT
및 JOIN
작업을 수행하여 lead_state
별칭을 생성합니다. 그런 다음 기본 쿼리는 이 CTE를 사용하여 WHERE
절이 lead_state
을 올바르게 참조할 수 있도록 합니다. 이 접근 방식은 WHERE
절 평가
위 내용은 PostgreSQL WHERE 절에서 오류 없이 별칭을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!