दिलचस्प पोस्ट
विशिष्ट वर्ण के लिए ऑरेकल एसक्यूएल में उपस्ट्रिंग का चयन कैसे करें? जांचें कि तालिका SQL सर्वर में मौजूद है या नहीं निर्भर विधि प्रकारों के लिए कुछ सम्मोहक उपयोग के मामले क्या हैं? SQL प्रबंधन स्टूडियो में CommandTimeout बदलना एक HTML5 तालिका में स्क्रॉलबार कैसे जोड़ें? jQuery। एक गतिशील रूप से डाला iframe में पहले से ही एएसपी.नेट एमवीसी में मेरे स्टेटफुल इंटरलेस्ड मोडल संवाद को सरल कैसे करें I सूची ड्रॉपडाउन सूची में विशेषताएँ पोस्टबैक पर खो जाती हैं? क्या मेरे पास एक मेज पर एकाधिक प्राथमिक कुंजी हो सकती है? एमएसएसक्यूएल में वर्ष और सप्ताह संख्या से तारीख का निर्माण जावास्क्रिप्ट (.js) फ़ाइलों के अंदर PHP शामिल करें आईओएस पृष्ठभूमि डाउनलोड जब ऐप सक्रिय नहीं है JavaScript फ़ाइलों के ब्राउज़र कैशिंग को रोकने का बेहतर तरीका Xcode, जहां segue पहचानकर्ता निर्दिष्ट करने के लिए इकाई प्रकार MVC5 EF6 में उपयोगकर्ता

एसक्यूएल केस स्टेटमेंट सिंटैक्स?

एसक्यूएल केस स्टेटमेंट के लिए पूर्ण और सही सिंटैक्स क्या है?

Solutions Collecting From Web of "एसक्यूएल केस स्टेटमेंट सिंटैक्स?"

संपूर्ण सिंटैक्स उस डेटाबेस इंजिन पर निर्भर करता है जिस पर आप काम कर रहे हैं:

SQL सर्वर के लिए:

CASE case-expression WHEN when-expression-1 THEN value-1 [ WHEN when-expression-n THEN value-n ... ] [ ELSE else-value ] END 

या:

 CASE WHEN boolean-when-expression-1 THEN value-1 [ WHEN boolean-when-expression-n THEN value-n ... ] [ ELSE else-value ] END 

अभिव्यक्ति, आदि:

 case-expression - something that produces a value when-expression-x - something that is compared against the case-expression value-1 - the result of the CASE statement if: the when-expression == case-expression OR the boolean-when-expression == TRUE boolean-when-exp.. - something that produces a TRUE/FALSE answer 

लिंक: केस (ट्रांसएक्ट-एसक्यूएल)

यह भी ध्यान रखें कि WHEN स्टेटमेंट्स का क्रम महत्वपूर्ण है। आप आसानी से एकाधिक WHEN खंड ओवरलैप लिख सकते हैं, और पहले मैच के लिए उपयोग किया जाता है

नोट : यदि कोई ELSE खंड निर्दिष्ट नहीं है, और कोई मिलान WHEN- स्थिति नहीं मिलती है, तो CASE अभिव्यक्ति का मान NULL होगा।

आपको कई उत्पादों को टैग करने पर विचार करने पर, मैं कहूंगा कि पूर्ण सही सिंटैक्स आईएसओ / एएनएसआई एसक्यूएल -92 मानक में पाया जाएगा:

 <case expression> ::= <case abbreviation> | <case specification> <case abbreviation> ::= NULLIF <left paren> <value expression> <comma> <value expression> <right paren> | COALESCE <left paren> <value expression> { <comma> <value expression> }... <right paren> <case specification> ::= <simple case> | <searched case> <simple case> ::= CASE <case operand> <simple when clause>... [ <else clause> ] END <searched case> ::= CASE <searched when clause>... [ <else clause> ] END <simple when clause> ::= WHEN <when operand> THEN <result> <searched when clause> ::= WHEN <search condition> THEN <result> <else clause> ::= ELSE <result> <case operand> ::= <value expression> <when operand> ::= <value expression> <result> ::= <result expression> | NULL <result expression> ::= <value expression> 

सिंटेक्स नियम

 1) NULLIF (V1, V2) is equivalent to the following <case specification>: CASE WHEN V1=V2 THEN NULL ELSE V1 END 2) COALESCE (V1, V2) is equivalent to the following <case specification>: CASE WHEN V1 IS NOT NULL THEN V1 ELSE V2 END 3) COALESCE (V1, V2, . . . ,n ), for n >= 3, is equivalent to the following <case specification>: CASE WHEN V1 IS NOT NULL THEN V1 ELSE COALESCE (V2, . . . ,n ) END 4) If a <case specification> specifies a <simple case>, then let CO be the <case operand>: a) The data type of each <when operand> WO shall be comparable with the data type of the <case operand>. b) The <case specification> is equivalent to a <searched case> in which each <searched when clause> specifies a <search condition> of the form "CO=WO". 5) At least one <result> in a <case specification> shall specify a <result expression>. 6) If an <else clause> is not specified, then ELSE NULL is im- plicit. 7) The data type of a <case specification> is determined by ap- plying Subclause 9.3, "Set operation result data types", to the data types of all <result expression>s in the <case specifica- tion>. Access Rules None. General Rules 1) Case: a) If a <result> specifies NULL, then its value is the null value. b) If a <result> specifies a <value expression>, then its value is the value of that <value expression>. 2) Case: a) If the <search condition> of some <searched when clause> in a <case specification> is true, then the value of the <case specification> is the value of the <result> of the first (leftmost) <searched when clause> whose <search condition> is true, cast as the data type of the <case specification>. b) If no <search condition> in a <case specification> is true, then the value of the <case expression> is the value of the <result> of the explicit or implicit <else clause>, cast as the data type of the <case specification>. 

यहां पोस्टग्रेएसक्यूएल डॉक्स (पोस्टग्रेज़ एसक्यूएल मानक का अनुसरण करते हैं) से CASE स्टेटमेंट उदाहरण दिए गए हैं :

 SELECT a, CASE WHEN a=1 THEN 'one' WHEN a=2 THEN 'two' ELSE 'other' END FROM test; 

या

 SELECT a, CASE a WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'other' END FROM test; 

जाहिर है, दूसरा फॉर्म क्लीनर है जब आप एक फ़ील्ड को संभव मानों की सूची के खिलाफ देख रहे हैं। पहला फ़ॉर्म अधिक जटिल अभिव्यक्ति की अनुमति देता है।

सिवायबेस में एक ही केस सिंटैक्स के रूप में SQL सर्वर है:

विवरण

सशर्त एसक्यूएल अभिव्यक्ति का समर्थन करता है; कहीं भी उपयोग किया जा सकता है एक मूल्य अभिव्यक्ति का उपयोग किया जा सकता है

वाक्य – विन्यास

 case when search_condition then expression [when search_condition then expression]... [else expression] end 

केस और मान सिंटैक्स

 case expression when expression then expression [when expression then expression]... [else expression] end 

पैरामीटर

मामला

केस अभिव्यक्ति शुरू होती है

कब

खोज की स्थिति या तुलना की जाने वाली अभिव्यक्ति से पहले।

search_condition

का चयन किया जाता है कि परिणाम के लिए शर्तों को निर्धारित करने के लिए प्रयोग किया जाता है। मामले की अभिव्यक्ति के लिए खोज की स्थिति एक ऐसी परिस्थिति के समान होती है जहां खंड। ट्रांसएक्ट-एसक्यूएल प्रयोक्ता गाइड में खोज की स्थिति का विवरण दिया गया है।

फिर

अभिव्यक्ति से पहले होता है जो मामले के परिणाम मान को निर्दिष्ट करता है।

अभिव्यक्ति

एक कॉलम का नाम, एक निरंतर, एक फ़ंक्शन, एक सबक्जरी, या स्तंभ नामों, स्थिरांक और अंकगणित या बिटwise ऑपरेटरों से जुड़े कार्यों का कोई भी संयोजन है। अभिव्यक्तियों के बारे में अधिक जानकारी के लिए, "अभिव्यक्तियाँ" में देखें।

उदाहरण

 select disaster, case when disaster = "earthquake" then "stand in doorway" when disaster = "nuclear apocalypse" then "hide in basement" when monster = "zombie apocalypse" then "hide with Chuck Norris" else then "ask mom" end from endoftheworld 

मैंने ओरेकल पृष्ठ को उसी के लिए खोला और ऐसा लगता है कि यह एक ही वाक्यविन्यास है, बस थोड़ा अलग बताया है।

लिंक: ओरेकल / पीएलएसक्यूएल: केस स्टेटमेंट

11 जी दस्तावेज़ीकरण से ओरेकल सिंटैक्स :

 CASE { simple_case_expression | searched_case_expression } [ else_clause ] END 

simple_case_expression

 expr { WHEN comparison_expr THEN return_expr }... 

searched_case_expression

 { WHEN condition THEN return_expr }... 

else_clause

 ELSE else_expr 

ओरेकल के मामले में एक बिंदु पर ध्यान दें, अगर कोई मैचों और कोई दूसरा हिस्सा नहीं है तो अपवाद उठता है।

 Case statement syntax in SQL SERVER. CASE column WHEN value1 THEN 1 WHEN value3 THEN 2 WHEN value3 THEN 3 WHEN value1 THEN 4 ELSE '' END And we can use like below also: CASE WHEN column=value1 THEN 1 WHEN column=value3 THEN 2 WHEN column=value3 THEN 3 WHEN column=value1 THEN 4 ELSE '' END