假设以下行mytable的:的Oracle SQL - 我可以返回 “之前” 一列值的状态
id = 1
letter = 'a'
在Oracle中,人们可以很容易做到以下几点:
update myTable set
letter = 'b'
where id = 1
returning letter
into myVariable;
和myVariable将保存值'b'。
我所寻找的是返回信
即“之前”价值的一些方法。替换以前的更新:然后
update myTable set
letter = 'b'
where id = 1
returning letter "before the update"
into myVariable;
和MYVARIABLE应持有的价值 'A';
我知道T-SQL可以通过OUTPUT子句实现这一点。
是否有一个Oracle等价的方式来实现这个功能,所以我不必首先做一个“select”来获得之前的值?
这很有趣。 –
Brillant解决方案!它可以简化一点,只是'选择T. *,T.letter AS old_letter .....' – krokodilko
@krokodilko我测试过“简体”字母为old_letter' - 不工作。 Oracle在这种情况下返回新的价值。只有子选择欺骗Oracle – Mike