एक कॉलम को एक अलग नाम देने के लिए एक उपनाम का उपयोग क्वेरी चयन सूची में किया जा सकता है। आप उपनाम का उपयोग GROUP BY
. में कर सकते हैं , ORDER BY
, या HAVING
कॉलम को संदर्भित करने के लिए खंड:
SELECT SQRT(a*b) AS root FROM tbl_name
GROUP BY root HAVING root > 0;
SELECT id, COUNT(*) AS cnt FROM tbl_name
GROUP BY id HAVING cnt > 0;
SELECT id AS 'Customer identity' FROM tbl_name;
मानक SQL WHERE
. में स्तंभ उपनामों के संदर्भों की अनुमति नहीं देता है खंड। यह प्रतिबंध इसलिए लगाया गया है क्योंकि जब WHERE
खंड का मूल्यांकन किया गया है, तो स्तंभ मान अभी तक निर्धारित नहीं किया गया हो सकता है। उदाहरण के लिए, निम्न क्वेरी अवैध है:
SELECT id, COUNT(*) AS cnt FROM tbl_name
WHERE cnt > 0 GROUP BY id;
WHERE
क्लॉज निर्धारित करता है कि कौन सी पंक्तियों को GROUP BY
में शामिल किया जाना चाहिए खंड, लेकिन यह एक स्तंभ मान के उपनाम को संदर्भित करता है जो तब तक ज्ञात नहीं है जब तक कि पंक्तियों का चयन नहीं किया जाता है, और GROUP BY
द्वारा समूहीकृत किया जाता है ।
किसी क्वेरी की चयन सूची में, एक उद्धृत कॉलम उपनाम को पहचानकर्ता या स्ट्रिंग उद्धरण वर्णों का उपयोग करके निर्दिष्ट किया जा सकता है:
SELECT 1 AS `one`, 2 AS 'two';
कथन में कहीं और, उपनाम के उद्धृत संदर्भों को पहचानकर्ता उद्धरण का उपयोग करना चाहिए या संदर्भ को एक स्ट्रिंग अक्षर के रूप में माना जाता है। उदाहरण के लिए, यह कथन कॉलम आईडी में मानों के आधार पर समूहित करता है, जिसे उपनाम a
. का उपयोग करके संदर्भित किया जाता है :
SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
GROUP BY `a`;
लेकिन यह कथन शाब्दिक स्ट्रिंग 'ए' द्वारा समूहित है और अपेक्षा के अनुरूप काम नहीं करेगा:
SELECT id AS 'a', COUNT(*) AS cnt FROM tbl_name
GROUP BY 'a';
स्रोत:https://docs.oracle .com/cd/E17952_01/refman-5.0-hi/problems-with-alias.html