dml中语法上可以使用exists的无非增删改查。
在select语句中能用exists的地方,都可以用表连接来改写。
在insert语句中要用exists的是在select子句中,也都可以用表连接来改写。
在update、delete语句中,在需要根据表A的判断条件,来update、delete表B的某一条记录的时候,也可以使用exists,或者改写为表连接。
例如:(oracle常用写法)
update t_user u set u.status = 2
where exists (select 1 from t_subscription s where t.id = s.id and s.status = 2);
改写为:(sqlserver常用写法)
update t_user u set u.status = 2
from t_subscription s where t.id = s.id and s.status = 2;