Інструкція SQL CASE

The CASE заява в SQL це універсальний умовний вираз, який дозволяє нам включити умовна логіка безпосередньо в наших запитах. Це дозволяє повертати конкретні результати на основі певних умов, що дозволяє динамічно виводити запити. Чи потрібно створити нові колонки змінювати існуючі або налаштовувати результати своїх запитів Інструкція CASE може впоратися з усім.

У цій статті ми дізнаємося, Оператор SQL CASE детально з чіткими прикладами та випадками використання, які показують, як використовувати цю функцію для покращення запитів SQL.

Інструкція CASE в SQL

  • The CASE заява в SQL це умовний вираз, який дозволяє виконувати умовну логіку в запиті.
  • Він зазвичай використовується для створення нових стовпців на основі умовної логіки, яка надає користувальницькі значення або контролює вихідні дані запиту на основі певних умов.
  • Якщо жодна умова не виконується, то ІНШЕ частина буде виконана. Якщо частини ELSE немає, повертається NULL.

Синтаксис:

Щоб використовувати оператор CASE в SQL, використовуйте такий синтаксис:

CASE case_value
WHEN умова THEN результат1
WHEN умова THEN результат2
...
Інакше результат
END CASE;

Приклад оператора SQL CASE

Давайте розглянемо кілька прикладів оператора CASE в SQL, щоб краще зрозуміти його.

Давайте створимо демонстраційну таблицю SQL, яка буде використана в прикладах.

Демонстраційна база даних SQL

Ми будемо використовувати цей зразок таблиці SQL для наших прикладів оператора SQL CASE:

CustomerID Ім'я клієнта Прізвище Країна Вік Телефон
1 Сумнів Тхакур Індія 23 xxxxxxxxxx
2 Безпечний Чопра Австралія 21 xxxxxxxxxx
3 Навін Туласі Шрі-Ланка 24 xxxxxxxxxx
4 Адітья Арпан Австрія 21 xxxxxxxxxx
5 Нішант. Салчичас С.А. Джайн Іспанія 22 xxxxxxxxxx

Ви можете створити таку саму базу даних у своїй системі, написавши наступний запит MySQL:

 CREATE TABLE Customer( CustomerID INT PRIMARY KEY CustomerName VARCHAR(50) LastName VARCHAR(50) Country VARCHAR(50) Age int(2) Phone int(10) ); -- Insert some sample data into the Customers table INSERT INTO Customer (CustomerID CustomerName LastName Country Age Phone) VALUES (1 'Shubham' 'Thakur' 'India''23''xxxxxxxxxx') (2 'Aman ' 'Chopra' 'Australia''21''xxxxxxxxxx') (3 'Naveen' 'Tulasi' 'Sri lanka''24''xxxxxxxxxx') (4 'Aditya' 'Arpan' 'Austria''21''xxxxxxxxxx') (5 'Nishant. Salchichas S.A.' 'Jain' 'Spain''22''xxxxxxxxxx');   

Приклад 1: простий вираз CASE

У цьому прикладі ми використовуємо оператор CASE

Запит:

 SELECT CustomerName Age CASE WHEN Country = 'India' THEN 'Indian' ELSE 'Foreign' END AS Nationality FROM Customer;  

Вихід:

Ім'я клієнта Вік Національність
Сумнів 23 індійський
Безпечний 21 іноземні
Навін 24 іноземні
Адітья 21 іноземні
Нішант. Салчичас С.А. 22 іноземні

Приклад 2: SQL CASE за кількох умов

Ми можемо додати декілька умов у оператор CASE за допомогою кількох КОЛИ пункти.

Запит:

 SELECT CustomerName Age CASE WHEN Age> 22 THEN 'The Age is greater than 22' WHEN Age = 21 THEN 'The Age is 21' ELSE 'The Age is over 30' END AS QuantityText FROM Customer;  

Вихід:

Ім'я клієнта Вік QuantityText
Сумнів 23 Вік більше 22 років
Безпечний 21 Вік 21 рік
Навін 24 Вік більше 22 років
Адітья 21 Вік 21 рік
Нішант. Салчичас С.А. 22 Вік старше 30

Приклад 3: Оператор CASE з пропозицією ORDER BY

Давайте візьмемо таблицю клієнтів, яка містить CustomerID CustomerName LastName Country Age and Phone. Ми можемо перевірити дані таблиці Customer за допомогою ЗАМОВИТИ ЗА речення з оператором CASE.

Запит:

 SELECT CustomerName Country FROM Customer ORDER BY (CASE WHEN Country IS 'India' THEN Country ELSE Age END);  

Вихід:

Ім'я клієнта Країна
Безпечний Австралія
Адітья Австрія
Нішант. Салчичас С.А. Іспанія
Навін Шрі-Ланка
Сумнів Індія

Важливі моменти щодо оператора CASE

  • Інструкція SQL CASE є умовним виразом, який дозволяє виконувати різні запити на основі заданих умов.
  • Завжди має бути a ВИБРАТИ в операторі CASE.
  • END ELSE є необов'язковий компонент але КОЛИ ТОДІ ці випадки повинні бути включені в оператор CASE.
  • Ми можемо зробити будь-який умовний оператор, використовуючи будь-який умовний оператор (як ДЕ ) між WHEN і THEN. Це включає в себе об’єднання декількох умовних операторів за допомогою І і АБО.
  • Ми можемо включити кілька операторів WHEN і оператор ELSE, щоб протидіяти неадресованим умовам.

Висновок

The CASE оператор забезпечує надійний механізм для включення умовної логіки в запити SQL. Використовуючи цей оператор, ви можете обробляти різні умови та ефективно налаштовувати вивід своїх запитів. Розуміння того, як реалізувати CASE вирази дозволяють вам виконувати більш складну маніпуляцію даними та створювати звіти, роблячи ваші запити SQL більш динамічними та чутливими до різних сценаріїв.

Створіть вікторину