Разница между OUTER APPLY и CROSS APPLY в SQL Server заключается в следующем:
- CROSS APPLY возвращает только те строки из левого табличного выражения, которые совпадают с правым табличным выражением. 12 Это эквивалент построчного INNER JOIN. 1
- OUTER APPLY возвращает все строки из левого табличного выражения независимо от их соответствия правому табличному выражению. 14 Для строк, для которых нет соответствующих совпадений в правом табличном выражении, в столбцах правого табличного выражения возвращаются значения NULL. 14 Это эквивалент LEFT OUTER JOIN. 14
Таким образом, CROSS APPLY возвращает только коррелированные данные, а OUTER APPLY — некоррелированные, заполняя пропуски в столбцах значениями NULL. 4