CTE – Common Table Expression (Loop in SQL)

common table expression, sql cte common table expression, common table expressions, sql cte (common table expression), sql common table expression, common table expression in sql, mysql common table expression, common table expression in mysql, common table expression syntax, common table expression in database, how to use common table expressions

What is CTE क्या हैं ?

CTE का पूरा नाम Common Table Expression हैं, यह SQL का एक बहुत ही बढ़िया Construct हैं, जो की Virtual Table की तरह कार्य करता हैं, यह कार्य को बहुत ही आसान बना देता हैं । इसका उपयोग MySQL मे WITH Clause के साथ किया जाता हैं।


CTE कैसे कार्य करता हैं ?

SQL लिखने के पहले हम With Clause के साथ इसका उपयोग करते हैं, यह SQL चलने के पहले Execute होता हैं, इसके Result को हम Query मे उपयोग करते हैं, Query का Result आने पर यह स्वतः ही End हो जाता हैं। यह Virtual Table कई तरह Records को Hold कर लेता हैं।


CTE मे With Recursive Clause क्या होता हैं?

जब भी हमे Looping का कार्य करना होता हैं तब हम With Recursive का उपयोग करते हैं। Recursive का मतलब यह होता हैं कई यह एक ऐसा Construct हैं जो खुद को ही Call करता हैं । हमे अपने logic लगा कर Recursion से बाहर लाना होता हैं।


CTE With Recursive Example

निम्न Example मे हमने एक छोटा सा Loop Logic लिखा हैं जिससे कई आपको समझ मे आये की किस तरह से हम Recursive का उपयोग कर Loop लिख सकते हैं ।

CTE - WITH RECURSIVE

देखिए जब भी हम कोई भी लूप लिखे हैं तो हमे 3 Parameter देना होते है ।

  • 1. Initialization : सबसे पहले लूप को चलाने के लिए एक variable मे वैल्यू को Initialize किया जाता हैं। यहा पर Initialization SELECT 0 से किया गया हैं।
  • 2. Exit Condition : हमे एक Condition देना होती हैं जब तक Variable उस Condition को Satisfy करता है जब तक loop चलता हैं और जैसे ही Unsetisfy होता हैं लूप से exit हो जाते हैं वैसा ही इसमे WHERE i<5 से किया हैं ।
  • 3. Increment / Decrement : variable कई वैल्यू को Increment किया जाता हैं ताकि loop को आगे बड़ाया जा सके । या reverse loop चलाना चाहते हैं तब Decrement करते हैं। Increment के लिए यहा पर i+1 का उपयोग किया गया है।

Related Video : With Clause Recursive CTE (Common Table Expression)

WITH RECURSIVE mytable(i) AS
(
	SELECT 0
	UNION ALL
	SELECT i+1 FROM mytable WHERE i<5
)
SELECT * FROM mytable;

Result देखते ही आपके मन मे एक Query आयी होगी की जब i<5 दिया हैं तो यह 5 तक क्यू Execute हुवा? तो इसका जवाब यह हैं हमने i पर condition लगाई हैं और Display i+1 किया हैं यानि कई जब आई कई वैल्यू आखरी Cycle पर 4 थी जब 5 print किया और उके बाद Recursive Execution End हो गया ।


आशा हैं मुझे की आपको MySQL मे Loop Logic बहुत अच्छे से समझ मे आ गया होगा, यदि फिर भी आपके कोई Doubts हैं तो आप मुझे Comment कर सकते हैं ।

यह Article कैसा लगा बताना न भूले, अपना कीमती समय देने के लिए धन्यवाद ।


हमारे अन्य आर्टिकल

Add a Comment

Your email address will not be published. Required fields are marked *