假設以下行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