در این قسمت از آموزش اوراکل بعد از آشنایی با آموزش تابع ()GROUPING قصد داریم آموزش CROSS APPLY و OUTER APPLY در اوراکل را یاد بگیریم.

با استفاده از CROSS APPLY و OUTER APPLY دراوراکل می تواند رکوردهای خروجی که بوسیله دو کوئری select ایجاد شده است را با هم مقایسه می کند و رکورد هایی که با هم انطباق و یکسان داشته باشد را پیدا کرده و در خروجی یک رکورد را در خروجی نهایی نمایش می دهد. (اصطلاحا با هم merge میکند)

CROSS APPLY

دستور CROSS APPLY در خروجی رکوردهایی که از جاصل دو دستور Select با هم انطباق دارند و یکسان می باشد را یکی کرده و نمایش میدهد و فقط رکوردهایی را نمایش می دهد که رکوردهای کوئری بیرونی outer SELECT با رکوردهای کوئری داخلی inner SELECT یکسان باشد و رکورد های نهایی را به عنوان result set نمایش می دهد.

CROSS APPLY و  OUTER APPLY در اوراکل 29

OUTER APPLY

دستور OUTER APPLY در خروجی رکوردهایی که از جاصل دو دستور Select با هم انطباق ندارند و یکسان نمی باشد را نمایش میدهد و فقط رکوردهایی را نمایش می دهد که رکوردهای کوئری بیرونی outer SELECT با رکوردهای کوئری داخلی inner SELECT یکسان نباشد و رکورد های نهایی را به عنوان result set نمایش می دهد.

آموزش اوراکل 29

کار با دستور LATERAL

در ادامه آموزش اوراکل یک امکان جدیدی در اوراکل نسخه ۱۲C به بعد اضافه شد به نام LATERAL که این دستوردر واقع یک subquery فراهم میدهد که اصطلاحا inline view می نامند. یک inline view دیتا و اطلاعاتی را از یک یا چند جدول تولید میکند و به عنوان یک جدول موقت temporary ایجاد میکند که کوئری بیرونی outer SELECT آن اطلاعاتش از جداول اصلی می باشد.

آموزش CROSS APPLY و OUTER APPLY در اوراکل 30

برخلاف OUTER APPLY ، دستور LATERAL نمی تواند رکوردهایی که دارای مقادیر null خالی می باشد را در انطباق دهد و در خروجی نمایش دهد.

همچنین زمانی PIVOT و UNPIVOT استفاده می کنید نمی توانید از دستور LATERAL استفاده کنید.

آموزش اوراکل در مورد مطلب : CROSS APPLY و OUTER APPLY