簡體   English   中英

Postgres:帶括號操作的生成列

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM