The operator APPLY is not an operator I’ve any experience of using and I’m worried I’m missing certain possibilities.
This article by Alexander Kuznetsov gives a good example
In Alexander’s example he uses APPLY to join to the return from a function – are there other situations where APPLY, CROSS or OUTER should be the first thing I use?
APPLY is a row-by-row operator that allows you to
APPLYeach row of the prior tables to either a function or a subquery. It therefore is very useful in situations whereYes it can substitute a JOIN but but it will perform terribly where a normal JOIN would have worked, because you’re forcing SQL Server to use row-by-row operators rather than set-based JOIN.
The difference between CROSS APPLY and OUTER APPLY is the same as the difference between INNER JOIN and OUTER JOIN. Basically, CROSS APPLY will remove the source record if the function/subquery to which it is applied returns 0 records. OUTER APPLY keeps the source record.
Read more : Using Apply (msdn)