我有下表,我称之为'示例'
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)
您可能需要考虑将其添加为计算列.这样,该列是虚拟的,因此您不会使用额外的存储空间.此外,对name或last_name的任何更改都会自动反映在新列中,而无需任何干预.
编辑:修改代码基于示例中的更改.
alter table example
add full_name as coalesce(name+' ','') + last_name
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2616 次 |
最近记录: |