SQL केस स्टेटमेंट बहुत शक्तिशाली और बहुमुखी है। इसका उपयोग SELECT, UPDATE और INSERT स्टेटमेंट में किया जा सकता है। यहां तक कि इसे ORDER BY और GROUP BY क्लॉज में भी इस्तेमाल किया जा सकता है। आइए एक-एक करके उनकी जांच करें।
सिंटैक्स
सबसे पहले CASE स्टेटमेंट का सिंटैक्स देखें:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... WHEN conditionN THEN resultN ELSE result END;
डेटा तैयार करना
पहले अपना पसंदीदा डेटाबेस चुनें और "व्यक्तियों" तालिका बनाने और डेटा के साथ पॉप्युलेट करने के लिए प्रश्नों के नीचे चलाएं।
IF OBJECT_ID('Persons', 'U') IS NOT NULL DROP TABLE Persons; GO CREATE TABLE Persons( name varchar(20) ,age int ,sex varchar(2) ) GO INSERT INTO Persons (name,age,sex) values('Bob',5, 'M'); INSERT INTO Persons (name,age,sex) values('Harry',15, 'M'); INSERT INTO Persons (name,age,sex) values('Jasmine',25, 'F'); INSERT INTO Persons (name,age,sex) values('Fanny',65, 'F'); INSERT INTO Persons (name,age,sex) values('Evan',-1, 'N'); GO
चयन कथन
आइए इसे अपने SELECT स्टेटमेंट में इस्तेमाल करें।
SELECT Name, age as 'Actual Age', CASE WHEN age >= 0 AND age <= 12 THEN 'CHILD' WHEN age >= 13 AND age <= 19 THEN 'TEEN AGE' WHEN age >= 20 AND age <= 40 THEN 'YOUNG' WHEN age >= 41 AND age <= 60 THEN 'MIDDLE AGE' WHEN age >= 61 THEN 'OLD' ELSE 'NOT DEFINED' END as 'New Age using CASE Stmt', sex as 'Actual Gender', CASE WHEN sex = 'M' THEN 'MALE' WHEN sex = 'F' THEN 'FEMALE' WHEN sex = 'N' THEN 'DONT WANT TO DISCLOSE' END as 'New Gender using CASE Stmt' FROM Persons
आउटपुट
इन्सर्ट स्टेटमेंट
DECLARE @age INT DECLARE @sex VARCHAR(10) SET @age = 40 SET @sex = 'MALE' INSERT INTO Persons (Name, Age, Sex) VALUES( 'Jack', CASE WHEN @age < 0 THEN -1 ELSE @age END, CASE WHEN @sex = 'MALE' THEN 'M' WHEN @sex = 'FEMALE' THEN 'F' ELSE 'N' END )
आउटपुट
यदि हम अपना पहला SELECT स्टेटमेंट फिर से चलाते हैं, तो आउटपुट होगा:
अद्यतन विवरण
DECLARE @age INT SET @age = -4 UPDATE Persons SET age = CASE WHEN @age < 0 THEN -1 ELSE @age END WHERE Name = 'Bob'
आउटपुट
यदि हम उपरोक्त SELECT स्टेटमेंट को फिर से चलाते हैं, तो आउटपुट होगा:
अनुच्छेद द्वारा आदेश
CASE can be added in ORDER BY clause in above SELECT statement SELECT Name, age as 'Actual Age', CASE WHEN age >= 0 AND age <= 12 THEN 'CHILD' WHEN age >= 13 AND age <= 19 THEN 'TEEN AGE' WHEN age >= 20 AND age <= 40 THEN 'YOUNG' WHEN age >= 41 AND age <= 60 THEN 'MIDDLE AGE' WHEN age >= 61 THEN 'OLD' ELSE 'NOT DEFINED' END as 'New Age using CASE Stmt', sex as 'Actual Gender', CASE WHEN sex = 'M' THEN 'MALE' WHEN sex = 'F' THEN 'FEMALE' WHEN sex = 'N' THEN 'DONT WANT TO DISCLOSE' END as 'New Gender using CASE Stmt' FROM Persons ORDER BY CASE WHEN sex='M' THEN age END, CASE WHEN sex='F' THEN Name END
आउटपुट
ग्रुप बाय क्लॉज
अब हमारे पहले सेलेक्ट स्टेटमेंट में ग्रुप बाय क्लॉज में केस को एक्सप्लोर करने का समय है:
SELECT CASE WHEN age <= 40 THEN 'YOUNG' WHEN age >= 41 THEN 'OLD' END as 'New Age using CASE Stmt', COUNT(*) FROM Persons GROUP BY CASE WHEN age <= 40 THEN 'YOUNG' WHEN age >= 41 THEN 'OLD' END
आउटपुट
<मजबूत>
हमने अपने आज के केस विषय के सभी मामलों को कवर किया है।
घर पर रहें! सुरक्षित रहें!
यह पहली बार मेरे ब्लॉग में प्रकाशित हुआ था।