考虑PostgreSQL中的以下查询:
SELECT
a, b,
(A VERY LONG AND COMPLICATED SUBQUERY) AS c,
(ANOTHER VERY LONG AND COMPLICATED SUBQUERY) AS d
FROM table
Run Code Online (Sandbox Code Playgroud)
我希望c并d在WHERE条款中,如:
WHERE c AND d;
Run Code Online (Sandbox Code Playgroud)
但是,据我所知,我只能这样做:
WHERE A VERY LONG AND COMPLICATED SUBQUERY) AND
(ANOTHER VERY LONG AND COMPLICATED SUBQUERY)
Run Code Online (Sandbox Code Playgroud)
这是笨拙的,代码复制,打破单选原则和完全丑陋.
顺便说一下,同样的问题也适用于该SELECT子句:我不能将缩写用于先前定义的子查询.
Mar*_*ers 13
您可以使用子查询:
SELECT a,b,c,d FROM
(SELECT
a, b,
(A VERY LONG AND COMPLICATED SUBQUERY) AS c,
(ANOTHER VERY LONG AND COMPLICATED SUBQUERY) AS d
FROM table
) AS T1
WHERE c AND d
Run Code Online (Sandbox Code Playgroud)
您也可以使用CTE执行此操作.