Microsoft वर्तमान में इस सिंटैक्स की अनुमति देता है।
SELECT *
FROM ( VALUES (1) ) AS g(x)
WHERE EXISTS (
SELECT *
FROM ( VALUES (1),(1) )
AS t(x)
WHERE g.x = t.x
HAVING count(*) > 1
);
ध्यान दें कि खंड GROUP BYमें कोई भी नहीं है EXISTS, यह मान्य ANSI SQL है। या यह केवल एक कार्यान्वयन विवरण को उजागर कर रहा है।
संदर्भ के लिए, PostgreSQL में इसी सिंटैक्स की अनुमति नहीं है।
त्रुटि: कॉलम "tx" को ग्रुप BY क्लॉज में प्रकट होना चाहिए या एक समग्र फ़ंक्शन में उपयोग किया जाना चाहिए
लेकिन इस वाक्यविन्यास की अनुमति है ..
SELECT *
FROM ( VALUES (1) ) AS g(x)
WHERE EXISTS (
SELECT 1 -- This changed from the first query
FROM ( VALUES (1),(1) )
AS t(x)
WHERE g.x = t.x
HAVING count(*) > 1
);
और इस सिंटैक्स की अनुमति है।
SELECT *
FROM ( VALUES (1) ) AS g(x)
WHERE EXISTS (
SELECT *
FROM ( VALUES (1),(1) )
AS t(x)
WHERE g.x = t.x
GROUP BY t.x -- This changed from the first query
HAVING count(*) > 1
);
चैट में @ErikE से बातचीत से सवाल उठता है