निम्नलिखित सभी उत्तर मानते हैं कि पंक्तियाँ मिलान . में दी गई हैं आदेश।
9.3 पोस्ट करें
SRF फ़ंक्शन से पंक्तियों को एक्सप्लोड करने की विचित्र विशेषता के साथ समान . लौटाते हैं समानांतर में पंक्तियों की संख्या:
SELECT count(*) AS mismatches
FROM (
SELECT function1('tblp1','tblp2',49) AS f1
, function2('tblp1_v2','tblp2_v2',49) AS f2
) sub
WHERE (f1).dist <> (f2).dist; -- note the parentheses!
संभावित तालिका संदर्भ से अलग होने के लिए पंक्ति प्रकार के चारों ओर कोष्ठक आवश्यक हैं। यहाँ मैनुअल में विवरण।
यह पंक्तियों के कार्टेशियन उत्पाद के लिए डिफ़ॉल्ट है यदि लौटाई गई पंक्तियों की संख्या समान नहीं है (जो इसे आपके लिए पूरी तरह से तोड़ देगी)।
9.4 पोस्ट करें
WITH ORDINALITY
फ्लाई पर पंक्ति संख्या उत्पन्न करने के लिए
आप WITH ORDINALITY
का उपयोग कर सकते हैं मक्खी पर एक पंक्ति संख्या उत्पन्न करने के लिए और SELECT
में SRF कार्यों के परिणाम को जोड़ने पर निर्भर होने की आवश्यकता नहीं है सूची:
SELECT count(*) AS mismatches
FROM function1('tblp1','tblp2',49) WITH ORDINALITY AS f1(id,dist,rn)
FULL JOIN function2('tblp1_v2','tblp2_v2',49) WITH ORDINALITY AS f2(id,dist,rn) USING (rn)
WHERE f1.dist IS DISTINCT FROM f2.dist;
यह प्रत्येक फ़ंक्शन से समान पंक्तियों के साथ-साथ भिन्न संख्याओं के लिए भी काम करता है (जिसे बेमेल के रूप में गिना जाएगा)।
संबंधित:
ROWS FROM
पंक्ति-दर-पंक्ति सेट में शामिल होने के लिए
SELECT count(*) AS mismatches
FROM ROWS FROM (function1('tblp1','tblp2',49)
, function2('tblp1_v2','tblp2_v2',49)) t(id1, dist1, id2, dist2)
WHERE t.dist1 IS DISTINCT FROM t.dist2;
संबंधित उत्तर:
इसके अलावा:EXECUTE FORMAT
एक सेट plpgsql कार्यक्षमता नहीं है। RETURN QUERY
है। format()
क्वेरी स्ट्रिंग बनाने के लिए बस एक सुविधाजनक कार्य है, SQL या plpgsql में कहीं भी उपयोग किया जा सकता है।