Я смотрел на CROSS / OUTER APPLY с коллегой, и мы изо всех сил пытаемся найти реальные примеры того, где их использовать.
Я потратил довольно много времени на Когда мне следует использовать Cross Apply for Inner Join? и googling, но основной (только) пример кажется довольно странным (используя rowcount из таблицы, чтобы определить, сколько строк выбрать из другой таблицы).
Я думал, что этот сценарий может выиграть от OUTER APPLY:
Таблица контактов (содержит 1 запись для каждого контакта) Таблица протоколов связи (может содержать n телефон, факс, электронную почту для каждого контакта)
Но использование подзапросов, общие выражения таблиц, OUTER JOIN с RANK() и OUTER APPLY все, похоже, работают одинаково. Я предполагаю, что это означает, что сценарий не применим к APPLY.
Поделитесь некоторыми примерами реальной жизни и помогите объяснить эту функцию!