[英]Postgres: Generated column with parenthesis operation
我想在我的 PostgreSQL 表中添加一个生成的列。 问题是当我使用带括号的操作时,结果为零。
ALTER TABLE my_table
add COLUMN my_column decimal(4,3) GENERATED ALWAYS AS ((price-buy_price)/price) STORED;
my_column 中的所有结果都是 0.000。 然后我尽量避免在我的操作中使用括号,所以我的查询看起来像:
ALTER TABLE my_table
add COLUMN my_column2 decimal(4,3) GENERATED ALWAYS AS (price-buy_price/price) STORED;
这是工作,但结果不是我想要的。 我想知道为什么每次使用括号时它都会失败,而当我执行 (a+b) 或 (a+b/c) 或 (a*bc/d) 等操作时它会起作用。
有人有解决方案吗? 谢谢你。
如果您的列是 integer 列,则除法也是 integer 除法,您没有十进制数字。 您需要转换除法中的至少一个表达式:
ALTER TABLE my_table
add my_column decimal(4,3)
GENERATED ALWAYS AS ( (price-buy_price) / price::numeric) STORED;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.