我试图了解SQL中两个操作之间的关系-ADD COLUMN和CAST()。
我试图创建一个包含另一列值的长度的新列,而另一列的类型为INTEGER:
ALTER TABLE inventory
ADD inventory_id_len AS (CHAR_LENGTH(CAST(inventory_id AS VARCHAR)) FROM rental);
但它返回:ERROR: syntax error at or near "AS"
LINE 4: ADD inventory_id_len AS (CHAR_LENGTH(CAST(inventory_id AS V...
谢谢。
最佳答案
在Postgres中,您需要使用generated always ... stored
语法use来添加计算列。对于您的用例,它看起来像:
alter table inventory
add inventory_id_len int
generated always as (char_length(inventory_id::text)) stored
;
在这种情况下,子查询毫无意义。计算的列在同一行上采用inventory_id
列的值。
关于sql - 如何使用CAST和SQL中另一个表的信息添加新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64803472/