假设我有以下查询:
for (int i=0;i<size;i++)
{
(*(cplxOut+i)).real(*(reals+i));
(*(cplxOut+i)).imag(*(imags+i));
}
执行此操作时,最终得到2个名为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;
的列。有什么方法可以用IN函数过滤value_x
而不用在每种情况下都使用它?在很多情况下,它确实会使查询膨胀。
无法更改查询子查询结构,因为有许多情况下使用子查询中的值来创建新列,这是我第一次必须更新子查询中的一个列,而我只能使用value_x
语句。
我正在使用PostgreSQL。