Sql 如何在Oracle 11g中使用不同的值更新列?

Sql 如何在Oracle 11g中使用不同的值更新列?,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,我有一个名为“User\u Report”的表,其中包含这些列 ID Name City zip Report_File 101 AAA PPP 123 ----- 102 BBB QQQ 345 ----- 103 CCC RRR 567 ----- 104 FFF SSS 789 ----- 我添加了Report_File新列

我有一个名为“User\u Report”的表,其中包含这些列

ID       Name    City    zip    Report_File
101      AAA     PPP     123     -----
102      BBB     QQQ     345     -----
103      CCC     RRR     567     -----
104      FFF     SSS     789     -----
我添加了Report_File新列,我需要用名称+“.rpt”更新此列。 如何在一个update语句中使用相应的名称列数据更新报表文件列

请给我一个例子


提前感谢。

请尝试下面的查询。在oracle中,双管道(
|
)用于串接字符串:

Update User_Report
SET Report_File=Name||'.rpt';
或者可以使用关键字
CONCAT
。提及


你的RePrimeFipe文件列看起来是一个计算值,如果它永远不会偏离,那么你可以考虑一个虚拟列。

alter table user_report add (report_file varchar(40) as (name||'.rpt'));
这样,您就不必担心保持同步,如果名称更改或插入新值,它将始终保持同步

alter table user_report add (report_file varchar(40) as (name||'.rpt'));