स्वयं के साथ तालिका में शामिल हों और इसे दो अलग-अलग उपनाम (ए और बी) दें। । यह एक ही तालिका के विभिन्न पंक्तियों की तुलना करने की अनुमति देता है।
SELECT DISTINCT A.Id
FROM
Address A
INNER JOIN Address B
ON A.Id = B.Id AND A.[Adress Code] < B.[Adress Code]
WHERE
A.Address <> B.Address
तुलना <
सुनिश्चित करता है कि आप 2 अलग-अलग पतों मिलता है और आप एक ही 2 पता कोड दो बार नहीं मिलता है "से कम"। इसके बजाए "बराबर नहीं" <>
का उपयोग करके, कोड (1, 2) और (2, 1) के रूप में उपज मिलेगा; उनमें से प्रत्येक A
उपनाम और B
बदले में उपनाम के लिए।
शामिल खंड पंक्तियों की जोड़ी के लिए ज़िम्मेदार है जहां कहां क्लॉज अतिरिक्त स्थितियों का परीक्षण करता है।
अद्यतन:
क्वेरी के ऊपर किसी भी पते के कोड के साथ काम करता है। आप विशिष्ट पते के कोड के साथ पतों की तुलना करना चाहते हैं, तो आप
SELECT A.Id
FROM
Address A
INNER JOIN Address B
ON A.Id = B.Id
WHERE
A.[Adress Code] = 1 AND
B.[Adress Code] = 2 AND
A.Address <> B.Address
करने के लिए क्वेरी को बदल सकते हैं मुझे लगता है कि यह ग्राहकों (एक उदाहरण के रूप Adress कोड = 1) एक बिलिंग पता होने लगता है उपयोगी हो सकता है से भिन्न वितरण पता (एड्रेस कोड = 2)।
स्रोत
2012-12-04 17:15:52
कूल! आपने क्या प्रयास किया है –
कौन सा आरडीबीएमएस? यदि SQL सर्वर, [इस सवाल] को देखने का प्रयास करें (http://stackoverflow.com/q/510916/1220971)। – Bridge
क्षमा करें, मैं टेराडाटा के भीतर इसका उपयोग कर रहा हूं। –