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 अब परिणाम सेट में नहीं रहेगा।