【问题标题】:Replace values from one row to another将值从一行替换到另一行
【发布时间】:2017-08-14 12:16:33
【问题描述】:

我得到了这个代码

UPDATE TASK tas1
SET TARGET_WORK_QTY = (SELECT REMAIN_WORK_QTY 
                       FROM TASK tas2
                       WHERE tas1.TASK_ID = tas2.TASK_ID
                         AND PROJ_ID = 884)

它应该将值从一行重写到另一行(基于相同的 task_id 和 project = 884),但它的工作方式有点不同。我正在使用 oracle 11g。

示例表

id 值1 值2
1 aaa zzz
2 bbb xxx
3cc aaa

我想得到以下结果(将值从值 1 替换为值 2):

id 值1 值2
1 啊啊啊
2 bbb bbb
3cccccc

【问题讨论】:

  • (1) 用您正在使用的数据库标记您的问题。 (2) 提供样本数据和期望的结果。你的问题不清楚。
  • 您好,谢谢。我正在使用 oracle 11
  • @Aleksej,只有一张表,其名称为 TASK,有两个不同的别名。

标签: sql oracle oracle11g


【解决方案1】:

从您的样本数据和所需结果来看,您似乎只需要:

update task
set value2 = value1

例如:

SQL> create table task(id, value1, value2) as (
  2      select 1, 'aaa', 'zzz' from dual union all
  3      select 2, 'bbb', 'xxx' from dual union all
  4      select 3, 'ccc', 'aaa' from dual
  5  );

Table created.

SQL> update task set value2 = value1;

3 rows updated.

SQL> select * from task;

        ID VAL VAL
---------- --- ---
         1 aaa aaa
         2 bbb bbb
         3 ccc ccc

SQL>

【讨论】:

    猜你喜欢
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多