• The APPLY operator allows you to join two table expressions; the right table expression is processed every time for each row from the left table expression. the left table expression is evaluated first and then right table expression is evaluated against each row of the left table expression for final result-set. The final result-set contains all the selected columns from the left table expression followed by all the columns of right table expression.

    The CROSS APPLY operator returns only those rows from left table expression if it matches with right table expression. In other words, the right table expression returns rows for left table expression match only. Whereas the OUTER APPLY operator returns all the rows from left table expression irrespective of its match with the right table expression. For those rows for which there are no corresponding matches in right table expression, it contains NULL values in columns of right table expression

    In my case the need to use APPLY operator came handy when I had to use table-valued function for each row in the outer query..

    have a look at below links , they might be helpful

    http://explainextended.com/2009/07/16/inner-join-vs-cross-apply/

    http://sqlblog.com/blogs/alexander_kuznetsov/archive/2009/07/07/using-cross-apply-to-optimize-joins-on-between-conditions.aspx%5B/url%5D

    SQL 2000/2005/2008/2012 DBA - MCTS/MCITP