DF203: The NOT IN predicate with a subquery is used.

Last modified: December 25, 2024

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

Category

PERFORMANCE

Message

The NOT IN predicate with a subquery is used.

Description

Avoid using the NOT IN predicate in conjunction with a subquery. Use the NOT EXISTS predicate instead.

Noncompliant code example

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

Compliant solution

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