使用给定模式在 Postgres 中生成列
Generated columns in Postgres using a given pattern
我需要生成一个 SQL 查询,它可以生成一个遵循特定模式的列
模式是这样存储的Hello [Name] [lastname]
其中 name
和 lastname
都是 table 上的列。
如何在 end、start 和 indbetween 属性中添加常量字符串?
以及如何区分 table 列和我添加的列应该包含的字符串?
我的查询目前看起来像这样 - 模式然后采用
ALTER TABLE IF public.nameRegistration
DROP COLUMN IF EXISTS generated_colum
ADD COLUMN generated_colum TEXT generated ALWAYS as (|Pattern|) stored;
模式就是 Hello Name lastname
您只需进行字符串连接:
ALTER TABLE ADD COLUMN
generated_colum TEXT generated ALWAYS
as ('Hello ' || name || ' ' || lastname) stored;
正如 a_horse_with_no_name 评论的那样,如果两列中的任何一列可能是 null
,您可以使用 concat_ws()
:
ALTER TABLE ADD COLUMN
generated_colum TEXT generated ALWAYS
as (concat_ws(' ', 'Hello', name, lastname)) stored;
我需要生成一个 SQL 查询,它可以生成一个遵循特定模式的列
模式是这样存储的Hello [Name] [lastname]
其中 name
和 lastname
都是 table 上的列。
如何在 end、start 和 indbetween 属性中添加常量字符串?
以及如何区分 table 列和我添加的列应该包含的字符串?
我的查询目前看起来像这样 - 模式然后采用
ALTER TABLE IF public.nameRegistration
DROP COLUMN IF EXISTS generated_colum
ADD COLUMN generated_colum TEXT generated ALWAYS as (|Pattern|) stored;
模式就是 Hello Name lastname
您只需进行字符串连接:
ALTER TABLE ADD COLUMN
generated_colum TEXT generated ALWAYS
as ('Hello ' || name || ' ' || lastname) stored;
正如 a_horse_with_no_name 评论的那样,如果两列中的任何一列可能是 null
,您可以使用 concat_ws()
:
ALTER TABLE ADD COLUMN
generated_colum TEXT generated ALWAYS
as (concat_ws(' ', 'Hello', name, lastname)) stored;