(क्रॉस-कॉलम) डुप्लीकेट फ़ोन नंबर वाली सभी पंक्तियों को खोजने के लिए:
SELECT *
FROM contacts c
WHERE EXISTS (
SELECT FROM contacts x
WHERE x.mobile_phone IN (c.mobile_phone, c.home_phone)
OR x.home_phone IN (c.mobile_phone, c.home_phone)
AND x.contact_id <> c.contact_id -- except self
);
दो कॉलम में सभी डुप्लीकेट फोन नंबर खोजने के लिए:
SELECT DISTINCT phone
FROM (
SELECT mobile_phone AS phone
FROM contacts c
WHERE EXISTS (
SELECT FROM mobile_phone x
WHERE c.mobile_phone IN (x.mobile_phone, x.home_phone)
AND c.contact_id <> x.contact_id -- except self
)
UNION ALL
SELECT home_phone
FROM contacts c
WHERE EXISTS (
SELECT FROM mobile_phone x
WHERE c.home_phone = x.home_phone -- cross-over covered by 1s SELECT
AND c.contact_id <> x.contact_id -- except self
)
) sub;
समान पंक्ति . के दोनों स्तंभों में समान संख्या को दोहराना योग्य नहीं है। मुझे नहीं लगता कि आप उन्हें शामिल करना चाहेंगे। (अभी भी शोर होगा जो एक CHECK
. के साथ अस्वीकार करने योग्य हो सकता है बाधा।)