更新查询,该查询将使用来自同一表的另一个记录的值设置记录中的特定列

时间:2015-05-15 11:25:42

标签: sql oracle

看看这个查询;

update user_data set old_status= 'SNNNNS',
                     user_group='15',
                     default_rate='DEFAULT',
                     entity_num='1001'
where user_name='Dasu';

我知道我可以像这样编写查询并获得结果,但我不想写这些值。这些值来自另一条记录,其中包含user_name' sys'在同一张桌子里。我想要一个查询来更新“Dasu'”中的这些特定列。使用来自' sys'。

的值

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

在Oracle中,您可以将merge与自联接一起使用。或者,您可以在update

中编写相关子查询
update user_data
    set (old_status, user_group, default_rate, entity_num) = (select old_status, user_group, default_rate, entity_num from user_data where user_name = 'sys')
where user_name='Dasu';

答案 1 :(得分:0)

您可以在更新语句中嵌套select。例如:

UPDATE Dasu
SET old_status = (SELECT old_status FROM sys WHERE Id = 1)