on
क्लॉज का उपयोग तब किया जाता है जब join
मिलान पंक्तियों की तलाश में है। where
सभी जॉइनिंग के बाद पंक्तियों को फ़िल्टर करने के लिए क्लॉज का उपयोग किया जाता है।
राष्ट्रपति के लिए मतदान करने वाले डिज़्नी टून्स का एक उदाहरण:
declare @candidates table (name varchar(50));
insert @candidates values
('Obama'),
('Romney');
declare @votes table (voter varchar(50), voted_for varchar(50));
insert @votes values
('Mickey Mouse', 'Romney'),
('Donald Duck', 'Obama');
select *
from @candidates c
left join
@votes v
on c.name = v.voted_for
and v.voter = 'Donald Duck'
यह अब भी Romney
लौटाता है भले ही Donald
उसे वोट नहीं दिया। यदि आप शर्त को on
. से स्थानांतरित करते हैं where
. तक खंड:
select *
from @candidates c
left join
@votes v
on c.name = v.voted_for
where v.voter = 'Donald Duck'
Romney
अब परिणाम सेट में नहीं रहेगा।