xxxxxxxxxx
-- Case Eg.) to retrive the MAX value of a Field
-- if there are entries for the Field in table MAX value will be returned
-- But if there is no entries at all for the Field in tabel MAX will return
-- Null as the output. But Using Case When we can check it out return zero
-- or any other value if there is no enties for the Field in table..
SELECT
CASE -- Like Switch Case
WHEN -- First When condition
(MAX(BILLID) IS NULL) -- Condition
THEN 1 -- output (We can also add more When conditions like Above)
ELSE -- When WHEN Condition not Satisfied Below will be Executed.
(MAX(BILLID)) -- output
END
as MAXBILLID from DUAL;
-- Final Output
-- If there is no entry in the Field for the table
-- BILLID
-- 1
-- If there are entries MAX of that Field value from the table
-- BILLID
-- 10
xxxxxxxxxx
CASE
WHEN SUBSTRING(applications.pinfl, 1,1) IN ('3','5','7') THEN 'Erkak'
WHEN SUBSTRING(applications.pinfl, 1,1) IN ('2','4','6') THEN 'Ayol'
ELSE 'Topilmadi'
END as gender
xxxxxxxxxx
SELECT order_id, customer_id,
CASE
WHEN amount >= 400 THEN (amount - amount * 10/100)
END AS offer_price
FROM Orders;
xxxxxxxxxx
SELECT column_name,
CASE
WHEN boolean_condition THEN 'Result_1'
WHEN boolean_condition THEN 'Result_2'
ELSE 'Result_3'
END AS result_column_name
FROM table_name_1
LEFT JOIN table_name_2 ON
CASE
WHEN boolean_condition THEN 'Boolean_Result_1'
WHEN boolean_condition THEN 'Boolean_Result_2'
ELSE 'Boolean_Result_3'
END;
xxxxxxxxxx
Case Statement basically
Like IF - THEN - ELSE statement.
The CASE statement goes through conditions
and returns a value when the
first condition is met and
once a condition is true,
it will stop reading and return the result.
If no conditions are true,
it returns the value in the ELSE clause.
If there is no ELSE part and
no conditions are true, it returns NULL.
FOR EXAMPLE =
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END
-- example:
SELECT
CASE
WHEN (1+6 = 6) THEN 'A'
WHEN (1+6 = 7) THEN 'B'
WHEN (1+6 = 8) THEN 'C'
ELSE 'D'
END
FROM DUAL;
Result would be 'B' since it is the first
correct answer
xxxxxxxxxx
SELECT column1, column2,
CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
ELSE value3
END AS result_column
FROM your_table;