कुंजी शब्द का प्रयोग करें WITH
एक बार शीर्ष पर। यदि आपका कोई कॉमन टेबल एक्सप्रेशन (CTE) रिकर्सिव (rCTE) है तो आपको कीवर्ड RECURSIVE
जोड़ना होगा। शीर्ष पर एक बार साथ ही, भले ही सभी सीटीई पुनरावर्ती न हों:
WITH RECURSIVE
cte1 AS (...) -- can still be non-recursive
, cte2 AS (SELECT ...
UNION ALL
SELECT ...) -- recursive term
, cte3 AS (...)
SELECT ... FROM cte3 WHERE ...
मैनुअल:
<ब्लॉककोट>
अगर RECURSIVE
निर्दिष्ट है, यह अनुमति देता है एक SELECT
नाम से ही संदर्भ के लिए उपश्रेणी।
बोल्ड जोर मेरा। और, और भी अधिक जानकारीपूर्ण:
<ब्लॉककोट>
RECURSIVE
का एक और प्रभाव क्या वह WITH
. है प्रश्नों का आदेश देने की आवश्यकता नहीं है :एक क्वेरी दूसरे को संदर्भित कर सकती है जो बाद में सूची में है। (हालांकि, सर्कुलर संदर्भ, या पारस्परिक रिकर्सन, लागू नहीं किए जाते हैं।) RECURSIVE
के बिना , WITH
क्वेरीज़ केवल भाई-बहन को संदर्भित कर सकती हैं WITH
क्वेरी जो पहले WITH
. में हैं सूची।
मेरा फिर से बोल्ड जोर। मतलब WITH
. का क्रम खंड अर्थहीन है जब RECURSIVE
कुंजी शब्द का प्रयोग किया गया है।
BTW, cte1
. के बाद से और cte2
उदाहरण में बाहरी SELECT
. में संदर्भित नहीं हैं और सादे हैं SELECT
आदेश स्वयं (कोई संपार्श्विक प्रभाव नहीं), उन्हें कभी भी निष्पादित नहीं किया जाता है (जब तक कि cte3
. में संदर्भित नहीं किया जाता है )।