Der Grund dafür ist, dass Sie die rechte Tabelle in WHERE einschließen Klausel. Sie sollten das auf ON verschieben Bedingung des LEFT JOIN :
Select P.appId, S.stepId, S.section, P.start
From #appSteps S With (NoLock)
Left Join #appProgress P On S.stepId = P.stepId
And P.appId = 101
Where S.section Is Not Null
Der Grund dafür ist, dass WHERE -Klausel wird nach ausgewertet der LEFT JOIN , der dann Ihren NULL herausfiltert ergibt sich aus dem LEFT JOIN .
Einschließlich der rechten Tabelle eines LEFT JOIN (oder die linke Tabelle eines RIGHT JOIN ) im WHERE -Klausel transformiert effektiv den OUTER JOIN in einen INNER JOIN .