CASE та коменти

Опубликовано: 24 Декабрь 2022
на канале: spa it
103
6

DROP DATABASE base2;
CREATE DATABASE base2;


USE base2;
CREATE TABLE Customers
(
Id INT PRIMARY KEY AUTO_INCREMENT,
Age INT,
FirstName VARCHAR(20) NOT NULL,
LastName VARCHAR(20) NOT NULL,
Phone VARCHAR(20)
);

-- до речі, двома мінусами ми позначаємо коментарі
-- ( Phone VARCHAR(20) NOT NULL UNIQUE замінено)


INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (18,'Ganna','Velickiv','0688889977');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (19,'Ury','Medvejuy','0688889988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (39,'Anton','Chernov','0687889988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (22,'Anna','Ignatss','0687885988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (32,'Olga','Hiv','0681885988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (18,'Oksana','Velickiv','0688889971');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (14,'Victor','Medvejuy','0688889982');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (33,'Inna','Chernov','0687889983');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (27,'Elen','Ignatss','0687885984');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (31,'Olga','Helles','0681885985');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (18,'Zina','Velickiv','0688889977');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (14,'Valery','Medvejuy','0688889988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (33,'Inna','Velickiv','0687889989');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (27,'Elen','Ignatss','0687885980');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (31,'Anna','Illyv','0681885981');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (18,'Ganna','Stas','0088889977');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (19,'Ury','Medvejuy','0088889988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (39,'Anton','Chernov','0087889988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (22,'Anna','Ignatss','0087885988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (32,'Olga','Ann','0081885988');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (18,'Oksana','Velickiv','0288889971');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (14,'Victor','Medvejuy','0388889982');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (33,'Inna','Chernov','0387889983');
INSERT Customers(Age, FirstName, LastName, Phone)
VALUES (27,'Sergiy','Istom','0387885984');
INSERT Customers(Age, FirstName, LastName)
VALUES (10,'Anna','Proz');
INSERT Customers(Age, FirstName, LastName)
VALUES (11,'Olga','Vanetsko');
INSERT Customers(Age, FirstName, LastName)
VALUES (12,'Olga','Vanetsko');
INSERT Customers(Age, FirstName, LastName)
VALUES (13,'Olga','Vanetsko');
INSERT Customers(Age, FirstName, LastName)
VALUES (14,'Olga','Vanetsko');
INSERT Customers(Age, FirstName, LastName)
VALUES (15,'Olga','Vanetsko');
INSERT Customers(Age, FirstName, LastName)
VALUES (16,'Olga','Vanetsko');
INSERT Customers(Age, FirstName, LastName)
VALUES (17,'Olga','Vanetsko');
INSERT Customers(Age, FirstName, LastName)
VALUES (18,'Olga','Vanetsko');



INSERT Customers(Age, FirstName, LastName)
VALUES (46,'Olga','Vanetsko');

***********************************************
отримали щось таке
SELECT * FROM Customers;
***********************************************

відберемо Id, Age, FirstName, Phone з таблички Customers таким чином, щоб записи,
де є телефон, було відсортовано за номером телефону(ELSE Phone), наприклад, щоб бачити розподілення номерів по оператору,
а там де поле Phone є NULL - сортування відбулось за Id (WHEN Phone IS NULL THEN Id)


Зробимо це завдяки CASE.

SELECT Id, Age, FirstName, Phone
FROM Customers
ORDER BY
(CASE
WHEN Phone IS NULL THEN Id
ELSE Phone
END);

***********************************************

Або на SELECT додамо текстову інфрормацію - стовбчик Additionally про вік за допомогою CASE.

SELECT Id, Age, FirstName, Phone,
CASE
WHEN Age більш 18 THEN 'Age більше 18'
WHEN Age дорівнює 18 THEN 'Smooth 18'
ELSE 'Age меньше 18'
END AS Additionally
FROM Customers;

******************************************************
база, до речі, геть не змінилась

SELECT * FROM Customers;


Смотрите видео CASE та коменти онлайн без регистрации, длительностью часов минут секунд в хорошем качестве. Это видео добавил пользователь spa it 24 Декабрь 2022, не забудьте поделиться им ссылкой с друзьями и знакомыми, на нашем сайте его посмотрели 103 раз и оно понравилось 6 людям.