以这个为例:
SELECT TOP 1 FROM customers
WHERE firstname LIKE 'John%'
OR id IN (SELECT id_customer
FROM customer_emails
WHERE email like 'john.doe@%' )
Run Code Online (Sandbox Code Playgroud)
查询优化器是否设法优先处理第一个子句,如果更简单的子句对于至少 1 条记录(使用 Top 1)为真,则避免执行子查询?
我问这个主要是因为上面的查询可以重写为 Join,根据Join vs. sub-query从技术上讲,它会更快。但是,如果避免使用子查询,则在第一个子句可能为真的情况下,上面的示例显然优于 Join 。