1
我需要一些在Oracle中的MERGE命令的幫助。基本上我有這個命令,但我想優化一點:Oracle SQL:與比匹配/不匹配更多的條件合併
MERGE INTO swap USING dual ON (SELECT id FROM student WHERE number = '123')
WHEN MATCHED THEN
UPDATE SET swapped = 1, last_swap = sysdate
WHEN NOT MATCHED THEN
INSERT (student_id, swapped, last_swap) VALUES ((SELECT id FROM student WHERE number= '123'), 1, sysdate)
現在,這將插入或更新SWAP表上的寄存器。但是,如果在STUDENT表上沒有這個數字的學生(我不想簡單地在SWAP表的sudent_id上不允許NULL值),我想保護它免於在student_id上插入NULL。 其他的事情,我重複SELECT id FROM student WHERE number = '123'
兩次,我怎樣才能改變它只執行一次(將結果存儲在別名或其他東西中)?
非常感謝!