SQL CASE оператор

The CASE изявление в SQL е универсален условен израз, който ни позволява да включим условна логика директно в рамките на нашите запитвания. Позволява ви да върнете конкретни резултати въз основа на определени условия, позволяващи динамични изходи на заявки. Независимо дали трябва създайте нови колони модифицирайте съществуващите или персонализирайте изхода на вашите заявки Изявление CASE може да се справи с всичко.

В тази статия ще научим SQL CASE израз подробно с ясни примери и случаи на употреба, които показват как да използвате тази функция, за да подобрите вашите SQL заявки.

Изявление CASE в SQL

  • The CASE изявление в SQL е условен израз, който ви позволява да изпълнявате условна логика в рамките на заявка.
  • Обикновено се използва за създаване на нови колони въз основа на условна логика, предоставяща персонализирани стойности или контрол на изходните данни на заявката въз основа на определени условия.
  • Ако нито едно условие не е вярно, тогава ДРУГО част ще бъде изпълнена. Ако няма част ELSE, тогава се връща NULL.

Синтаксис:

За да използвате оператора CASE в SQL, използвайте следния синтаксис:

CASE case_стойност
WHEN условие THEN резултат1
WHEN условие THEN резултат2
...
Друг резултат
КРАЙНА КАСА;

Пример за SQL CASE оператор

Нека да разгледаме някои примери за израза CASE в SQL, за да го разберем по-добре.

Нека създадем демонстрационна SQL таблица, която ще се използва в примери.

Демо SQL база данни

Ще използваме тази примерна SQL таблица за нашите примери за SQL CASE израз:

CustomerID Име на клиента Фамилия държава Възраст Телефон
1 Съмнение Тхакур Индия 23 xxxxxxxxxx
2 безопасно Чопра Австралия 21 xxxxxxxxxx
3 Навийн Туласи Шри Ланка 24 xxxxxxxxxx
4 Адитя Арпан Австрия 21 xxxxxxxxxx
5 Нишант. Salchichas S.A. Джайн Испания 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 чужди
Нишант. Salchichas S.A. 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
Нишант. Salchichas S.A. 22 Възрастта е над 30

Пример 3: Изявление CASE с клауза ORDER BY

Нека вземем таблицата с клиенти, която съдържа CustomerID CustomerName LastName Държава Възраст и телефон. Можем да проверим данните от таблицата на клиента, като използваме ПОРЪЧАЙТЕ ПО клауза с израза CASE.

Запитване:

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

Изход:

Име на клиента държава
безопасно Австралия
Адитя Австрия
Нишант. Salchichas S.A. Испания
Навийн Шри Ланка
Съмнение Индия

Важни точки относно оператора CASE

  • Изявлението SQL CASE е условен израз, който позволява изпълнението на различни заявки въз основа на определени условия.
  • Винаги трябва да има a ИЗБЕРЕТЕ в изявлението CASE.
  • END ELSE е незадължителен компонент, но КОГА ТОГАВА тези случаи трябва да бъдат включени в оператора CASE.
  • Можем да направим всяко условно изявление, използвайки всеки условен оператор (като КЪДЕ ) между КОГА и ТОГАВА. Това включва свързване на множество условни изрази с помощта на И и ИЛИ.
  • Можем да включим множество оператори WHEN и оператор ELSE, за да противодействаме на неадресирани условия.

Заключение

The CASE предоставя стабилен механизъм за включване на условна логика в SQL заявки. С помощта на този оператор можете да се справите с различни условия и да персонализирате изхода на вашите заявки ефективно. Разбиране как да се приложи CASE изрази ви позволява да извършвате по-усъвършенствано манипулиране на данни и отчитане, което прави вашите SQL заявки по-динамични и отзивчиви към различни сценарии.

Създаване на тест