【问题标题】:How to update a column with different values in Oracle 11g?如何在 Oracle 11g 中更新具有不同值的列?
【发布时间】:2014-12-08 19:19:41
【问题描述】:

我有一个名为“User_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 新列,我需要使用 Name+".rpt" 更新此列。 如何在单个更新语句中使用相应的 Name 列数据更新 Report_File 列?

请给我一个例子?

提前致谢。

【问题讨论】:

    标签: sql oracle oracle11g


    【解决方案1】:

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

    Update User_Report
    SET Report_File=Name||'.rpt';
    

    可以使用或关键字CONCAT。参考LINK

    Update User_Report
    SET Report_File=CONCACT(Name, '.rpt')
    

    【讨论】:

      【解决方案2】:

      您的 report_file 列似乎是一个计算值,如果它永远不会偏离,那么您可以考虑使用虚拟列。

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

      这样您就不必担心保持同步,如果名称更改或插入新值,它将始终保持同步。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多