Using Cross Apply and Outer Apply in User Defined Table Value Function

Posted at : Dec/24/2009
11513 Views | 1 Comments

Perintah APPLY di SQL digunakan untuk menampilkan data dari sebuah Table Value Function (TVF) dimana input parameter yang dibutuhkan di dalam fungsi tersebut didapatkan dari outer query yang digunakan untuk mengevaluasi data inner query dari TVF. Outer query dapat dianggap sebagai left table sedangkan inner query sebagai right table.

Penggunaan operator APPLY ini mirip dengan perintah JOIN. Terdapat dua jenis operator APPLY yaitu CROSS APPLY dan OUTER APPLY. Output dari operator CROSS APPLY sama seperti output dari perintah INNER JOIN dimana data yang dihasilkan merupakan data yang berasal dari left table dengan data yang berasal dari right table untuk nilai kolom yang bersesuaian, sehingga apabila di right table tidak terdapat data yang bersesuaian dengan data di left table maka data tersebut tidak akan ditampilkan. Sedangkan perintah OUTER APPLY sama seperti OUTER JOIN yang akan menampilkan semua data dari left table meskipun tidak terdapat data yang bersesuaian di right table.

Operator APPLY ini hanya dapat digunakan pada SQL Server 2005 atau versi diatasnya, dengan kata lain database compatibility level nya minimum harus 90.

Pada artikel ini saya akan membuat contoh penggunaan dari kedua perintah APPLY diatas terhadap TVF yang telah dibuat sebelumnya dan dibahas di artikel tentang Creating User Defined Table Value Function. Database yang digunakan yaitu Northwind, dan SQL Server yang digunakan versi 2008. Berikut langkah-langkahnya :

1. Ketikkan query berikut pada SQL Server Management Studio dan jalankan perintah tersebut sehingga hasilnya dapat dilihat pada gambar dibawah ini :

Select e.EmployeeID,f.FirstName,e.Country,f.OrderID,f.ProductName,f.Quantity
From Employees e
Cross Apply dbo.GetEmployeeOrders(e.EmployeeID) As f
Order By e.EmployeeID,f.ProductName

 

Hasil eksekusi perintah CROSS APPLY diatas menghasilkan 2155 rows, dimana outer query memberikan input parameter berupa EmployeeID tiap record kepada TVF yang menghasilkan nilai-nilai dari kolom OrderID, ProductName dan Quantity berdasarkan EmployeeID yang diberikan.

2. Lakukan insert data baru ke table Employees :

Insert Into Employees(FirstName,LastName) Values('Rully','Yulian')

3.  Ubah perintah CROSS APPLY diatas dengan OUTER APPLY dan hasilnya diperlihatkan pada gambar dibawah ini :

Select e.EmployeeID,f.FirstName,e.Country,f.OrderID,f.ProductName,f.Quantity
From Employees e
Outer Apply dbo.GetEmployeeOrders(e.EmployeeID) As f
Order By e.EmployeeID,f.ProductName

 

Hasil eksekusi OUTER APPLY akan menambahkan satu record berupa record Employee yang baru saja ditambahkan. Nilai EmployeeID tersebut tetap ditampilkan meskipun tidak terdapat record yang bersesuaian di right table sebagai hasil eksekusi TVF. Apabila perintah OUTER diganti kembali dengan CROSS maka data EmployeeID tersebut tidak akan ditampilkan.

 


[Comments]

test (Feb/10/2021 10:50:17)

mantap


[Write your comment]

Name (required)

Email (required-will not published)

Comment
oghi
Input code above below (Case Sensitive) :

ABOUT ME

Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Founder & IT Trainer Native Enterprise | MCT (2008-2019) | MVP (2009-2016) | Xamarin Certified Professional | MTA | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.

[Read More...]

TOP DOWNLOAD

Mapping Hak Akses User Pada MenuStrip Sampai Control Button
downloaded 6988 times

Bagaimana caranya menginstal database ketika deploying sebuah aplikasi?
downloaded 4897 times

Simple Voice Engine Application With Sound Player Class...
downloaded 4048 times

Change Group,Sort Order, Filtering By Date in Crystal Reports
downloaded 3463 times

WinForms DataGrid Paging With SqlDataAdapter
downloaded 2884 times


LINKS

CERTIFICATIONS

Xamarin Certified
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench

NATIVE ENTERPRISE

Native Enterprise - IT Training

FOLLOW ME

Youtube  Facebook  Instagram  LinkedIn   Twitter

RSS


NATIVE ENTERPRISE NEWS

17 Nov 2024 03:01:19

17 Nov 2024 02:54:16

31 Oct 2024 08:04:45

31 Oct 2024 07:57:09

31 Oct 2024 07:52:20

31 Oct 2024 07:46:10

31 Oct 2024 07:37:30

31 Oct 2024 07:31:09

25 Aug 2024 09:40:16

25 Aug 2024 09:38:16

25 Aug 2024 09:34:51

28 Jul 2024 03:57:35

28 Jul 2024 03:53:38

© Copyright 2006 - 2024   Rully Yulian MF   All rights reserved.
Where you can buy Louis Vuitton Replica :

borse false louis vuitton napoli Portafoglio louis vuitton imitazioni cheap hermes bags from china Hermes replica uk knock off chanel bags hermes birkin replica dior replica bracelet love Cartier replique cartier love bracelet replica 1:1 replique louboutin gucci imitazioni louis vuitton imitazioni chanel shoes replica hermes replica dubai replica goyard bag louis vuitton artsy replica fake louis vuitton sling bag louis vuitton duffle bag replica louis vuitton wallet replica high quality Louis Vuitton replica hermes Replica Kaufen louis vuitton backpack replica prada bags replica van cleef replica louis vuitton messenger replica louis vuitton messenger replica replica cartier bracelet china replica louis vuitton sunglasses replica Louis Vuitton belts louis vuitton replica outlet Trinity de cartier replica gold cartier love bracelet replica replica chanel backpack replica chanel replica louis vuitton scarf replica louis vuitton strap replica louis vuitton scarpe ysl replica dubai chanel replica dubai fake gucci replica louis vuitton gürtel louis vuitton replica louis vuitton fake louis vuitton fake replica louis vuitton louis vuitton fake replica louis vuitton replica Louis Vuitton shoes louis vuitton shoes replica dior replica