큰 SQL 표현식과 복잡한 쿼리를 생성하는 시스템을 작성하고 있습니다. 내 자신의 성실함을 위해 코드 생성기를 사용하여 코드를 단순화하고 약간 더 읽기 쉽게 만드는 표현식을 사용하고 있습니다 (여전히 생성되는 공포의 예 : https://pastebin.com/UZJ01Q19)CTE (With 문 포함)는 PostgreSQL에서 공통 하위 식 제거를 허용합니까?
일부 지역에서는 원하는대로 ComplexQuery
이 식에서 회 평가되는 경우, 임의의 횟수 복합 표현식의 결과를 재사용하고, I는 예를 들어, 결합 된 발현의 평가 횟수 궁금하면, 방법으로는
WITH ... AS <DoSetup>,
intermediate AS <ComplexQuery>
SELECT a, b FROM
(SELECT * FROM intermediate WHERE ...)
UNION
(SELECT * FROM intermediate WHERE ...)
있다
표현식을 한 번만 평가하는 방식으로 다시 작성 하시겠습니까? 임시보기를 만드는 방법을 살펴 보았지만 모든 액세스에 대해 하위 쿼리를 다시 평가하는 것으로 보입니다.
감사합니다. 노조를 사용하는 예가 실제로 지나치게 단순화되었습니다. 쿼리를 여러 번 다시 사용할 수있는 간단한 방법을 선택하려고했습니다. 그러나 그것은 제가 염두에 두어야 할 것입니다. – Xandros