将3列自动连接为1列

时间:2018-11-15 01:09:48

标签: postgresql concatenation

Columns:
FirstName 
MiddleName 
LastName

我想自动连接到第四个以空格分隔的“ FullName”列中。每次在上述3列之一中输入或更改数据时,“ FullName”列都会更新。

Sample Data

2 个答案:

答案 0 :(得分:0)

由于您留下了mysql标签,因此给出了mysql答案:

在MySQL中,您可以使用generated column函数创建一个CONCAT_WS

答案 1 :(得分:0)

Postgres不支持(从版本11开始)虚拟列/派生列。

您可以改为创建视图。

(n/2-0.5, n/2+0.5)

CREATE OR replace VIEW v_names 
AS 
  SELECT firstname, 
         middlename, 
         lastname, 
         firstname 
         ||CASE 
             WHEN nullif(middlename, '') IS NULL THEN '' 
             ELSE ' ' 
                  ||middlename 
           END 
         ||CASE 
             WHEN nullif(lastname, '')   IS NULL THEN '' 
             ELSE ' ' 
                  ||lastname 
           END AS FullName 
  FROM   names;