我正在尝试根据下面的某些条件使我的计算动态,但是当我尝试将字段动态地发送到我的计算逻辑时,它会因错误而失败"无法序列化瞬态记录类型":
创建表语句:
create table calculation_t(
Id serial,
product_id integer not null,
metric_id integer not null,
start_date date,
end_date date,
calculation_logic varchar(50),
insert_timestamp timestamp default current_timestamp,
CONSTRAINT calculation_pk PRIMARY KEY(Id),
CONSTRAINT calculation_pid_fk FOREIGN KEY(product_id) REFERENCES Product_T(Product_id),
CONSTRAINT calc_mid_fk FOREIGN KEY(metric_id) REFERENCES metric_T(metric_id)
);
插入声明:
insert into calculation_t(product_id,metric_id,calculation_logic)
select a.product_id,b.metric_id,
(case when b.metric_id=2 then
('$1-$2') else
'$1/$2' end) calc
from product_t a,metric_t b
选择会引发上述错误的语句:
select *,(1,2,calculation_logic) from calculation_t
注意:我使用的是Greenplum数据库。
答案 0 :(得分:0)
尝试从查询中删除括号:
select *,1,2,calculation_logic from calculation_t
它对我有用。 感谢名单,