Рассмотрим следующий запрос в PostgreSQL:
SELECT
a, b,
(A VERY LONG AND COMPLICATED SUBQUERY) AS c,
(ANOTHER VERY LONG AND COMPLICATED SUBQUERY) AS d
FROM table
Я хочу иметь c
и d
в предложении WHERE
, например:
WHERE c AND d;
Но, насколько я знаю, я могу сделать только:
WHERE A VERY LONG AND COMPLICATED SUBQUERY) AND
(ANOTHER VERY LONG AND COMPLICATED SUBQUERY)
Что является неуклюжим, реплицирующим код, нарушающим принцип единого выбора и совершенно безобразным.
Кстати, та же проблема относится к предложению SELECT
: я не могу использовать сокращения для ранее определенных подзапросов.