DF204: IN predicate with a subquery is used.

Last modified: December 25, 2024

The topic describes the DF204 T-SQL code analysis rule.

Category

PERFORMANCE

Message

IN predicate with a subquery is used.

Description

It is recommended to avoid using the IN predicate with a subquery and opt for the EXISTS predicate instead for improved query performance.

Noncompliant code example

SELECT c.CustomerName FROM dbo.Customer c
WHERE c.CustomerId IN (SELECT r.CustomerId FROM dbo.Receipt r)
GO

Compliant solution

SELECT c.CustomerName FROM dbo.Customer c
WHERE EXISTS (SELECT * FROM dbo.Receipt r WHERE r.CustomerId = c.CustomerId)
GO