我想执行的查询:
BEGIN TRANSACTION
INSERT INTO TABLE_B SELECT * FROM TABLE_A WHERE SOME_COLUMN = 'something'
DELETE FROM TABLE_A WHERE COLUMN IN (
SELECT * FROM TABLE_A WHERE SOME_COLUMN = 'something'
)
END TRANSACTION
如您所见,查询中有一条冗余SELECT
语句DELETE
我想替换(如果可能),从而提高效率。
我正在考虑用第一个查询中的行创建一个视图,然后用第二个表中的行扫描视图。如果某些条件匹配,则从第二个表中删除该行。
我能得到一些关于如何做到这一点的指示吗?如果我做错了什么,请批评。
我正在使用 Sybase。
谢谢。