使用SQL,如何使用自己的值更新行?

Dav*_*ith 9 sql sql-server

我有下表,我称之为'示例'

id name       last_name
01 Adam       Adams
02 Bill       Billo
03 Cathy      McCathyson
Run Code Online (Sandbox Code Playgroud)

我需要修改表格,最后得到以下内容:

id name
01 Adam Adams
02 Bill Billo
03 Cathy McCathyson
Run Code Online (Sandbox Code Playgroud)

对于单行,我知道如何编写此查询:

UPDATE example SET name = 
   (SELECT name FROM example WHERE id = 01)+" "
   +(SELECT last_name FROM example WHERE id = 01)
WHERE id = 01;
Run Code Online (Sandbox Code Playgroud)

如何修改此查询,以便使用该行的值更新每一行,如示例中所示?

编辑: 我已经更新了我的例子,因为它混淆了这个问题.

Sat*_*hat 11

UPDATE example SET NAME = NAME + ' ' + last_name
Run Code Online (Sandbox Code Playgroud)
    ID NAME      LAST_NAME
Run Code Online (Sandbox Code Playgroud)
     1 Adam       Adams
     2 Bill       Billo
     3 Cathy      McCathyson

SQL> UPDATE example SET NAME = NAME + ' ' + last_name
  2  /

3 rows updated

SQL> select * from example
  2  /

        ID NAME                    LAST_NAME
---------- -----------------------------------------
         1 Adam Adams              Adams
         2 Bill Billo              Billo
         3 Cathy McCathyson        McCathyson
Run Code Online (Sandbox Code Playgroud)


Joe*_*lli 7

您可能需要考虑将其添加为计算列.这样,该列是虚拟的,因此您不会使用额外的存储空间.此外,对name或last_name的任何更改都会自动反映在新列中,而无需任何干预.

编辑:修改代码基于示例中的更改.

alter table example
    add full_name as coalesce(name+' ','') + last_name
Run Code Online (Sandbox Code Playgroud)