πŸ’» SQL: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ CASE WHEN ELSE ELSE

SQL CASE WHEN ELSE

The CASE WHEN statement in SQL allows us to perform conditional checks and return different values based on the conditions. It can be used to implement if-else logic in SQL queries.

        
SELECT column1,
       CASE
           WHEN condition1 THEN value1
           WHEN condition2 THEN value2
           ELSE value3
       END AS new_column
FROM table_name;
        
    

In the above example, we have a CASE statement that checks two conditions: condition1 and condition2. If condition1 is true, it will return value1; if condition2 is true, it will return value2. If none of the conditions are true, it will return value3. The new column created using AS is named "new_column".

Here is an example to illustrate the usage:

        
SELECT name,
       age,
       CASE
           WHEN age < 18 THEN 'Minor'
           WHEN age >= 18 AND age < 65 THEN 'Adult'
           ELSE 'Senior'
       END AS age_group
FROM users;
        
    

In the above example, the CASE statement is used to categorize users into different age groups based on their age. If the age is less than 18, it will return "Minor"; if the age is between 18 and 65, it will return "Adult"; otherwise, it will return "Senior".

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! БСгодня ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ конструкции SQL CASE WHEN ELSE ELSE ΠΈ ΠΊΠ°ΠΊ Π΅Ρ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своих запросах. Π­Ρ‚Π° конструкция позволяСт Π½Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ условия Π²Π½ΡƒΡ‚Ρ€ΠΈ SQL Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ дСйствия Π² зависимости ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² этих ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрёмся ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅!

ΠžΡΠ½ΠΎΠ²Ρ‹ конструкции CASE WHEN ELSE ELSE

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ CASE WHEN ELSE ELSE прСдставляСт собой условноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Π½Π°ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия Π½Π° основС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условий. Она Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ if-else Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит синтаксис конструкции:


CASE
    WHEN условиС_1 THEN дСйствиС_1
    WHEN условиС_2 THEN дСйствиС_2
    ...
    ELSE дСйствиС_n
END;
            

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ начинаСтся с ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова CASE, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ WHEN. КаТдоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ WHEN провСряСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ условиС ΠΈ, Ссли условиС истинно, выполняСт ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ дСйствиС. Если Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΈΠ· условий WHEN Π½Π΅ являСтся истинным, Ρ‚ΠΎ выполняСтся дСйствиС, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ послС ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова ELSE.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования конструкции CASE WHEN ELSE ELSE

Рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования конструкции CASE WHEN ELSE ELSE для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: ΠžΡ†Π΅Π½ΠΊΠΈ студСнтов

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° "students" с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ "name" ΠΈ "score". ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ студСнту Π² зависимости ΠΎΡ‚ ΠΈΡ… Π±Π°Π»Π»ΠΎΠ². Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ CASE WHEN ELSE ELSE ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:


SELECT name,
    CASE
        WHEN score >= 90 THEN 'A'
        WHEN score >= 80 THEN 'B'
        WHEN score >= 70 THEN 'C'
        WHEN score >= 60 THEN 'D'
        ELSE 'F'
    END as grade
FROM students;
                

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ CASE WHEN ELSE ELSE для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π±Π°Π»Π»Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ студСнта. Если Π±Π°Π»Π» студСнта большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π΅Π½ 90, ΠΌΡ‹ присваиваСм Π΅ΠΌΡƒ ΠΎΡ†Π΅Π½ΠΊΡƒ "A". Если Π±Π°Π»Π» ΠΌΠ΅ΠΆΠ΄Ρƒ 80 ΠΈ 89, ΠΌΡ‹ присваиваСм ΠΎΡ†Π΅Π½ΠΊΡƒ "B", ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Если Π±Π°Π»Π» студСнта Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π½ΠΈ ΠΏΠΎΠ΄ ΠΎΠ΄Π½ΠΎ ΠΈΠ· условий, ΠΌΡ‹ присваиваСм ΠΎΡ†Π΅Π½ΠΊΡƒ "F".

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: ΠŸΠΎΠ΄ΡΡ‡Π΅Ρ‚ скидки

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Π° "orders" с ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ "order_id" ΠΈ "total_amount". ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π°ΡΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ скидку для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π° Π² зависимости ΠΎΡ‚ Π΅Π³ΠΎ ΠΎΠ±Ρ‰Π΅ΠΉ стоимости. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ CASE WHEN ELSE ELSE ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² этом:


SELECT order_id,
    total_amount,
    CASE
        WHEN total_amount >= 1000 THEN total_amount * 0.1
        WHEN total_amount >= 500 THEN total_amount * 0.05
        ELSE 0
    END as discount
FROM orders;
                

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ CASE WHEN ELSE ELSE для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΠ±Ρ‰Π΅ΠΉ стоимости ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΊΠ°Π·Π°. Если общая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ°Π·Π° большС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½Π° 1000, ΠΌΡ‹ примСняСм скидку Π² 10% ΠΊ ΠΎΠ±Ρ‰Π΅ΠΉ суммС. Если общая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ°Π·Π° ΠΌΠ΅ΠΆΠ΄Ρƒ 500 ΠΈ 999, ΠΌΡ‹ примСняСм скидку Π² 5%. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, ΠΌΡ‹ примСняСм скидку Π² 0%.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠœΡ‹ рассмотрСли синтаксис ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования конструкции SQL CASE WHEN ELSE ELSE. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ для выполнСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… дСйствий Π½Π° основС условий. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ WHEN ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ELSE, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ случаи, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ условиями WHEN.

Бпасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Ρ‡ΠΈ Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ SQL!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Writing CASE WHEN Statements in SQL (IF/THEN)

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ CASE SQL. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ CASE WHEN

SQL CASE Statement | IF-THEN-ELSE statement SQL | How to return alternate column value in SQL

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Π˜Π½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ SQL: Ρ‡Ρ‚ΠΎ это ΠΈ ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ

πŸ’» SQL: ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ CASE WHEN ELSE ELSE

ИспользованиС ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΎΠ² WHERE Π² SQL: простой ΠΈ понятный Π³Π°ΠΉΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

SQL CASE WHEN синтаксис: ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈ объяснСния