Фильтрация значения подзапроса в основном запросе - PullRequest
0 голосов
/ 01 апреля 2020

Допустим, у меня есть следующий запрос:

select
*,
case when x in ('x','y','z',...) then 'X' end as value_x
from(
  select *,
  case when condition1 = true
       case
         when field2 == 'xxxx' then substr(field2, 0, 2)
         when field2 == 'yyyy' then substr(field2, 0, 2)
         when field2 == 'yxyx' then substr(field2, 0, 2)
         ...
       end
  end as value_x
 from table) as subquery;

Когда я это делаю, я получаю 2 столбца с именем value_x. Есть ли способ, которым я могу отфильтровать value_x с помощью функции IN без необходимости использовать его в каждом отдельном случае? Есть много случаев, и это действительно раздувает запрос.

Структура запроса-подзапроса не может быть изменена, так как существуют десятки тех случаев, в которых значения из подзапроса используются для создания новых столбцов, это первый раз, когда мне нужно обновить один из столбцов, поступающих из подзапроса, и я могу использовать только оператор SELECT.

Я использую PostgreSQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...