[英]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.