Subqueries are hard to read and debug. CTEs allow you to create ‘Virtual Results’ that you can reference easily.
WITH HighValueSales AS ( SELECT * FROM Sales WHERE Amount > 1000 ) SELECT p.ProductName, hvs.Amount FROM HighValueSales hvs JOIN Products p ON hvs.ProductId = p.Id;
