-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcross-appy-and-outer-apply-in-sql-server-with-examples.sql
106 lines (90 loc) · 1.97 KB
/
cross-appy-and-outer-apply-in-sql-server-with-examples.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
CREATE TABLE EmployeeDetails (
EmpId int PRIMARY KEY,
EmpFirstName VARCHAR(50),
EmpLastName VARCHAR(50),
Department VARCHAR(50),
DepartID INT
)
CREATE TABLE EmpSalary (
EmpID INT,
EmpFullName VARCHAR(80),
EmpSalary INT,
EmpWorkingYears INT,
DepartID INT
)
CREATE FUNCTION fn_Salaryinc (@DepartmentID int)
RETURNS TABLE
AS
RETURN
(
SELECT
EmpID, EmpFullName,
EmpSalary+5000 AS Salaryinc
FROM
Empsalary
WHERE
DepartID = @DepartmentID
)
GO
SELECT EmpID, Salaryinc FROM fn_Salaryinc(2)
Go
SELECT
e.EmpFirstName,
e.EmpLastName,
f.Salaryinc
FROM
EmployeeDetails AS e
CROSS APPLY
fn_Salaryinc (e.DepartID) AS f
GO
CREATE TABLE EmployeeDetails (
EmpId int PRIMARY KEY,
EmpFirstName VARCHAR(50),
EmpLastName VARCHAR(50),
Department VARCHAR(50),
DepartID INT
)
GO
CREATE TABLE EmployeeProject (
EmpID INT,
DepartmentName VARCHAR(100),
DepartID INT,
ProjectName VARCHAR(100),
Projectid VARCHAR(50)
)
GO
CREATE FUNCTION fn_Project(@DepartID INT)
RETURNS TABLE
AS
RETURN
(
SELECT
EmpID,
DepartmentName,
ProjectName
FROM
EmployeeProject
WHERE
DepartID = @DepartID
)
GO
SELECT * FROM fn_Project(2)
GO
SELECT
e.EmpID,
e.EmpFirstName ,
fn.DepartmentName,
fn.Projectname
FROM
Employeedetails e
OUTER APPLY
fn_Project (e.departID) AS fn
SELECT
e.EmpID,
e.EmpFirstName,
fn.DepartmentName,
fn.Projectname
FROM
Employeedetails e
Cross APPLY
fn_Project (e.departID) AS fn