Дополненная схема базы данных:
- Таблица
Автомобиль
- Таблица
Водитель
- Таблица
Оператор
- Таблица
Скидки
- Таблица
Заказ
- Таблица
Точки
- Таблица
Поездка
- Таблица
Отзывы
-- Создание таблицы Автомобиль
CREATE TABLE Автомобиль (
ID_автомобиля INT PRIMARY KEY AUTO_INCREMENT,
Гос_номер VARCHAR(10) NOT NULL,
Марка VARCHAR(50),
Модель VARCHAR(50),
Вид_топлива VARCHAR(20),
Цвет VARCHAR(20),
Личный BOOLEAN
);
-- Создание таблицы Водитель
CREATE TABLE Водитель (
Позывной_водителя INT PRIMARY KEY AUTO_INCREMENT,
Фамилия VARCHAR(50),
Имя VARCHAR(50),
Отчество VARCHAR(50),
Номер_телефона VARCHAR(20),
Состояние VARCHAR(20),
ID_автомобиля INT,
FOREIGN KEY (ID_автомобиля) REFERENCES Автомобиль(ID_автомобиля)
);
-- Создание таблицы Оператор
CREATE TABLE Оператор (
Позывной_оператора INT PRIMARY KEY AUTO_INCREMENT,
Фамилия VARCHAR(50),
Имя VARCHAR(50),
Отчество VARCHAR(50),
Номер_телефона VARCHAR(20),
Пароль VARCHAR(50)
);
-- Создание таблицы Скидки
CREATE TABLE Скидки (
ID_скидки INT PRIMARY KEY AUTO_INCREMENT,
Номер_карты VARCHAR(20),
Скидка DECIMAL(5,2)
);
-- Создание таблицы Заказ
CREATE TABLE Заказ (
ID_заказа INT PRIMARY KEY AUTO_INCREMENT,
Состояние VARCHAR(20),
Дата_и_время_поступления DATETIME,
Номер_телефона VARCHAR(20),
Улица VARCHAR(50),
Дом VARCHAR(10),
Багаж BOOLEAN,
Начальная_стоимость DECIMAL(10,2),
Стоимость_со_скидкой DECIMAL(10,2),
Комментарий_водителю TEXT,
Позывной_водителя INT,
Позывной_оператора INT,
ID_скидки INT,
FOREIGN KEY (Позывной_водителя) REFERENCES Водитель(Позывной_водителя),
FOREIGN KEY (Позывной_оператора) REFERENCES Оператор(Позывной_оператора),
FOREIGN KEY (ID_скидки) REFERENCES Скидки(ID_скидки)
);
-- Создание таблицы Точки
CREATE TABLE Точки (
ID_заказа INT,
Улица VARCHAR(50),
Дом VARCHAR(10),
PRIMARY KEY (ID_заказа, Улица, Дом),
FOREIGN KEY (ID_заказа) REFERENCES Заказ(ID_заказа)
);
-- Создание таблицы Поездка
CREATE TABLE Поездка (
ID_поездки INT PRIMARY KEY AUTO_INCREMENT,
ID_заказа INT,
Дата_и_время_поездки DATETIME,
Длительность INT,
Расстояние DECIMAL(10,2),
Стоимость DECIMAL(10,2),
FOREIGN KEY (ID_заказа) REFERENCES Заказ(ID_заказа)
);
-- Создание таблицы Отзывы
CREATE TABLE Отзывы (
ID_отзыва INT PRIMARY KEY AUTO_INCREMENT,
ID_поездки INT,
Оценка INT CHECK (Оценка BETWEEN 1 AND 5),
Комментарий TEXT,
Дата_отзыва DATETIME,
FOREIGN KEY (ID_поездки) REFERENCES Поездка(ID_поездки)
);
-- Ввод данных в таблицу Автомобиль
INSERT INTO Автомобиль (Гос_номер, Марка, Модель, Вид_топлива, Цвет, Личный) VALUES
('A123BC', 'Toyota', 'Camry', 'Бензин', 'Белый', TRUE),
('B456CD', 'Honda', 'Accord', 'Дизель', 'Черный', FALSE),
('C789DE', 'Ford', 'Focus', 'Электро', 'Синий', TRUE);
-- Ввод данных в таблицу Водитель
INSERT INTO Водитель (Фамилия, Имя, Отчество, Номер_телефона, Состояние, ID_автомобиля) VALUES
('Иванов', 'Иван', 'Иванович', '1234567890', 'Работает', 1),
('Петров', 'Петр', 'Петрович', '0987654321', 'Работает', 2),
('Сидоров', 'Сидор', 'Сидорович', '1122334455', 'Работает', 3);
-- Ввод данных в таблицу Оператор
INSERT INTO Оператор (Фамилия, Имя, Отчество, Номер_телефона, Пароль) VALUES
('Смирнов', 'Сергей', 'Сергеевич', '6677889900', 'pass123'),
('Кузнецова', 'Анна', 'Алексеевна', '5566778899', 'pass456');
-- Ввод данных в таблицу Скидки
INSERT INTO Скидки (Номер_карты, Скидка) VALUES
('1234', 10.00),
('5678', 15.00),
('9101', 5.00);
-- Ввод данных в таблицу Заказ
INSERT INTO Заказ (Состояние, Дата_и_время_поступления, Номер_телефона, Улица, Дом, Багаж, Начальная_стоимость, Стоимость_со_скидкой, Комментарий_водителю, Позывной_водителя, Позывной_оператора, ID_скидки) VALUES
('Новый', '2024-05-01 08:30:00', '1234567890', 'Ленина', '10', TRUE, 500.00, 450.00, 'Аккуратно', 1, 1, 1),
('Выполнен', '2024-05-01 09:00:00', '0987654321', 'Кирова', '20', FALSE, 300.00, 255.00, 'Быстро', 2, 2, 2),
('Отменен', '2024-05-01 09:30:00', '1122334455', 'Советская', '30', TRUE, 400.00, 380.00, 'Ожидание', 3, 1, 3);
-- Ввод данных в таблицу Точки
INSERT INTO Точки (ID_заказа, Улица, Дом) VALUES
(1, 'Ленина', '10'),
(1, 'Красная', '15'),
(2, 'Кирова', '20'),
(2, 'Мира', '25'),
(3, 'Советская', '30');
-- Ввод данных в таблицу Поездка
INSERT INTO Поездка (ID_заказа, Дата_и_время_поездки, Длительность, Расстояние, Стоимость) VALUES
(1, '2024-05-01 08:40:00', 30, 10.5, 450.00),
(2, '2024-05-01 09:10:00', 20, 7.3, 255.00);
-- Ввод данных в таблицу Отзывы
INSERT INTO Отзывы (ID_поездки, Оценка, Комментарий, Дата_отзыва) VALUES
(1, 5, 'Отличная поездка!', '2024-05-01 10:00:00'),
(2, 4, 'Хорошо, но можно лучше.', '2024-05-01 11:00:00');
-- Создание индекса на таблицу Заказ по полю Номер_телефона
CREATE INDEX idx_номер_телефона ON Заказ (Номер_телефона);
-- Создание уникального индекса на таблицу Автомобиль по полю Гос_номер
CREATE UNIQUE INDEX idx_гос_номер ON Автомобиль (Гос_номер);
-- Ограничение на таблицу Водитель по полю Номер_телефона, чтобы номера были уникальны
ALTER TABLE Водитель ADD CONSTRAINT unq_
номер_телефона UNIQUE (Номер_телефона);
-- Ограничение на таблицу Заказ по полю Стоимость_со_скидкой, чтобы стоимость не была отрицательной
ALTER TABLE Заказ ADD CONSTRAINT chk_стоимость_со_скидкой CHECK (Стоимость_со_скидкой >= 0);
-- Создание представления для просмотра завершенных заказов
CREATE VIEW Завершенные_заказы AS
SELECT * FROM Заказ
WHERE Состояние = 'Выполнен';
-- Пример использования оконной функции RANK()
SELECT ID_заказа, Номер_телефона, Начальная_стоимость,
RANK() OVER (ORDER BY Начальная_стоимость DESC) as Ранг
FROM Заказ;
-- Пример использования оконной функции ROW_NUMBER()
SELECT ID_заказа, Номер_телефона, Начальная_стоимость,
ROW_NUMBER() OVER (ORDER BY Дата_и_время_поступления) as Номер
FROM Заказ;
-- Пример использования оконной функции SUM() OVER
SELECT ID_заказа, Номер_телефона, Начальная_стоимость,
SUM(Начальная_стоимость) OVER (PARTITION BY Позывной_водителя) as Общая_стоимость
FROM Заказ;
-- Создание временной таблицы для хранения временных данных
CREATE TEMPORARY TABLE Временная_таблица AS
SELECT * FROM Заказ
WHERE Состояние = 'Новый';
-- Фильтрация заказов по состоянию
SELECT * FROM Заказ
WHERE Состояние = 'Выполнен';
-- Сортировка заказов по дате поступления
SELECT * FROM Заказ
ORDER BY Дата_и_время_поступления DESC;
-- Вставка нового заказа
INSERT INTO Заказ (Состояние, Дата_и_время_поступления, Номер_телефона, Улица, Дом, Багаж, Начальная_стоимость, Стоимость_со_скидкой, Комментарий_водителю, Позывной_водителя, Позывной_оператора, ID_скидки)
VALUES ('Новый', '2024-05-01 12:00:00', '2233445566', 'Победы', '50', FALSE, 600.00, 540.00, 'Без комментариев', 1, 2, 1);
-- Обновление состояния заказа
UPDATE Заказ
SET Состояние = 'Отменен'
WHERE ID_заказа = 3;
-- Группировка заказов по водителю и фильтрация по общей стоимости
SELECT Позывной_водителя, SUM(Начальная_стоимость) as Общая_стоимость
FROM Заказ
GROUP BY Позывной_водителя
HAVING Общая_стоимость > 1000.00;
-- Объединение данных из таблиц Заказ и Водитель
SELECT Заказ.ID_заказа, Заказ.Номер_телефона, Водитель.Фамилия, Водитель.Имя
FROM Заказ
JOIN Водитель ON Заказ.Позывной_водителя = Водитель.Позывной_водителя;
-- Левое соединение данных из таблиц Заказ и Скидки
SELECT Заказ.ID_заказа, Заказ.Номер_телефона, Скидки.Скидка
FROM Заказ
LEFT JOIN Скидки ON Заказ.ID_скидки = Скидки.ID_скидки;
-- Правое соединение данных из таблиц Заказ и Скидки
SELECT Заказ.ID_заказа, Заказ.Номер_телефона, Скидки.Скидка
FROM Заказ
RIGHT JOIN Скидки ON Заказ.ID_скидки = Скидки.ID_скидки;
-- Подзапрос для получения заказов с максимальной стоимостью
SELECT * FROM Заказ
WHERE Начальная_стоимость = (SELECT MAX(Начальная_стоимость) FROM Заказ);
-- Пример транзакции
START TRANSACTION;
UPDATE Водитель
SET Состояние = 'Отдыхает'
WHERE Позывной_водителя = 1;
INSERT INTO Заказ (Состояние, Дата_и_время_поступления, Номер_телефона, Улица, Дом, Багаж, Начальная_стоимость, Стоимость_со_скидкой, Комментарий_водителю, Позывной_водителя, Позывной_оператора, ID_скидки)
VALUES ('Новый', '2024-05-02 08:00:00', '3344556677', 'Садовая', '60', FALSE, 700.00, 630.00, 'Без комментариев', 2, 1, 2);
COMMIT;
-- Пример использования оператора CASE для классификации стоимости заказа
SELECT ID_заказа, Номер_телефона, Начальная_стоимость,
CASE
WHEN Начальная_стоимость < 300 THEN 'Дешево'
WHEN Начальная_стоимость BETWEEN 300 AND 600 THEN 'Средне'
ELSE 'Дорого'
END AS Категория_стоимости
FROM Заказ;
### 1. Разработка и дополнение схемы базы данных
Дополненная схема базы данных:
- Таблица `Автомобиль`
- Таблица `Водитель`
- Таблица `Оператор`
- Таблица `Скидки`
- Таблица `Заказ`
- Таблица `Точки`
- Таблица `Поездка`
- Таблица `Отзывы`
### 2. Создание таблиц по предложенной схеме БД
**Таблица Автомобиль:**
| ID_автомобиля | Гос_номер | Марка | Модель | Вид_топлива | Цвет | Личный |
|---------------|-----------|-------|--------|-------------|------|--------|
| 1 | A123BC | Toyota| Camry | Бензин | Белый| TRUE |
| 2 | B456CD | Honda | Accord | Дизель | Черный| FALSE |
| 3 | C789DE | Ford | Focus | Электро | Синий | TRUE |
**Таблица Водитель:**
| Позывной_водителя | Фамилия | Имя | Отчество | Номер_телефона | Состояние | ID_автомобиля |
|-------------------|---------|------|------------|----------------|-----------|---------------|
| 1 | Иванов | Иван | Иванович | 1234567890 | Работает | 1 |
| 2 | Петров | Петр | Петрович | 0987654321 | Работает | 2 |
| 3 | Сидоров | Сидор| Сидорович | 1122334455 | Работает | 3 |
**Таблица Оператор:**
| Позывной_оператора | Фамилия | Имя | Отчество | Номер_телефона | Пароль |
|--------------------|-----------|--------|-------------|----------------|---------|
| 1 | Смирнов | Сергей | Сергеевич | 6677889900 | pass123 |
| 2 | Кузнецова | Анна | Алексеевна | 5566778899 | pass456 |
**Таблица Скидки:**
| ID_скидки | Номер_карты | Скидка |
|-----------|-------------|--------|
| 1 | 1234 | 10.00 |
| 2 | 5678 | 15.00 |
| 3 | 9101 | 5.00 |
**Таблица Заказ:**
| ID_заказа | Состояние | Дата_и_время_поступления | Номер_телефона | Улица | Дом | Багаж | Начальная_стоимость | Стоимость_со_скидкой | Комментарий_водителю | Позывной_водителя | Позывной_оператора | ID_скидки |
|-----------|-----------|-------------------------|----------------|-----------|-----|-------|----------------------|-----------------------|----------------------|-------------------|--------------------|-----------|
| 1 | Новый | 2024-05-01 08:30:00 | 1234567890 | Ленина | 10 | TRUE | 500.00 | 450.00 | Аккуратно | 1 | 1 | 1 |
| 2 | Выполнен | 2024-05-01 09:00:00 | 0987654321 | Кирова | 20 | FALSE | 300.00 | 255.00 | Быстро | 2 | 2 | 2 |
| 3 | Отменен | 2024-05-01 09:30:00 | 1122334455 | Советская | 30 | TRUE | 400.00 | 380.00 | Ожидание | 3 | 1 | 3 |
**Таблица Точки:**
| ID_заказа | Улица | Дом |
|-----------|---------|-----|
| 1 | Ленина | 10 |
| 1 | Красная | 15 |
| 2 | Кирова | 20 |
| 2 | Мира | 25 |
| 3 | Советская | 30 |
**Таблица Поездка:**
| ID_поездки | ID_заказа | Дата_и_время_поездки | Длительность | Расстояние | Стоимость |
|------------|-----------|----------------------|--------------|------------|-----------|
| 1 | 1 | 2024-05-01 08:40:00 | 30 | 10.5 | 450.00 |
| 2 | 2 | 2024-05-01 09:10:00 | 20 | 7.3 | 255.00 |
**Таблица Отзывы:**
| ID_отзыва | ID_поездки | Оценка | Комментарий | Дата_отзыва |
|-----------|------------|--------|------------------------|---------------------|
| 1 | 1 | 5 | Отличная поездка! | 2024-05-01 10:00:00 |
| 2 | 2 | 4 | Хорошо, но можно лучше | 2024-05-01 11:00:00 |
### 4. Выполнение заданий
#### Индексы
```sql
-- Создание индекса на таблицу Заказ по полю Номер_телефона
CREATE INDEX idx_номер_телефона ON Заказ (Номер_телефона);
-- Создание уникального индекса на таблицу Автомобиль по полю Гос_номер
CREATE UNIQUE INDEX idx_гос_номер ON Автомобиль (Гос_номер);
-- Ограничение на таблицу Водитель по полю Номер_телефона, чтобы номера были уникальны
ALTER TABLE Водитель ADD CONSTRAINT unq_номер_телефона UNIQUE (Номер_телефона);
-- Ограничение на таблицу Заказ по полю Стоимость_со_скидкой, чтобы стоимость не была отрицательной
ALTER TABLE Заказ ADD CONSTRAINT chk_стоимость_со_скидкой CHECK (Стоимость_со_скидкой >= 0);
-- Создание представления для просмотра завершенных заказов
CREATE VIEW Завершенные_заказы AS
SELECT * FROM Заказ
WHERE Состояние = 'Выполнен';
-- Пример использования оконной функции RANK()
SELECT ID_заказа, Номер_телефона, Начальная_стоимость,
RANK() OVER (ORDER BY Начальная_стоимость DESC) as Ранг
FROM Заказ;
-- Пример использования оконной функции ROW_NUMBER()
SELECT ID_заказа, Номер_телефона, Начальная_стоимость,
ROW_NUMBER() OVER (ORDER BY Дата_и_время_поступления) as Номер
FROM Заказ;
-- Пример использования оконной функции SUM() OVER
SELECT ID_заказа, Номер_телефона, Начальная_стоимость,
SUM(Начальная_стоимость) OVER (PARTITION BY Позывной_водителя) as Общая_стоимость
FROM Заказ;
-- Создание временной таблицы для хранения временных данных
CREATE TEMPORARY TABLE Временная_таблица AS
SELECT * FROM Заказ
WHERE Состояние = 'Новый';
-- Фильтрация заказов по состоянию
SELECT * FROM Заказ
WHERE Состояние = 'Выполнен';
Результат:
ID_заказа | Состояние | Дата_и_время_поступления | Номер_телефона | Улица | Дом | Багаж | Начальная_стоимость | Стоимость_со_скидкой | Комментарий_водителю | Позывной_водителя | Позывной_оператора | ID_скидки |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2 | Выполнен | 2024-05-01 09:00:00 | 0987654321 | Кирова | 20 | FALSE | 300.00 | 255.00 | Быстро | 2 | 2 | 2 |
-- Сортировка заказов по д
ате поступления
SELECT * FROM Заказ
ORDER BY Дата_и_время_поступления DESC;
Результат:
ID_заказа | Состояние | Дата_и_время_поступления | Номер_телефона | Улица | Дом | Багаж | Начальная_стоимость | Стоимость_со_скидкой | Комментарий_водителю | Позывной_водителя | Позывной_оператора | ID_скидки |
---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | Отменен | 2024-05-01 09:30:00 | 1122334455 | Советская | 30 | TRUE | 400.00 | 380.00 | Ожидание | 3 | 1 | 3 |
2 | Выполнен | 2024-05-01 09:00:00 | 0987654321 | Кирова | 20 | FALSE | 300.00 | 255.00 | Быстро | 2 | 2 | 2 |
1 | Новый | 2024-05-01 08:30:00 | 1234567890 | Ленина | 10 | TRUE | 500.00 | 450.00 | Аккуратно | 1 | 1 | 1 |
-- Вставка нового заказа
INSERT INTO Заказ (Состояние, Дата_и_время_поступления, Номер_телефона, Улица, Дом, Багаж, Начальная_стоимость, Стоимость_со_скидкой, Комментарий_водителю, Позывной_водителя, Позывной_оператора, ID_скидки)
VALUES ('Новый', '2024-05-01 12:00:00', '2233445566', 'Победы', '50', FALSE, 600.00, 540.00, 'Без комментариев', 1, 2, 1);
-- Обновление состояния заказа
UPDATE Заказ
SET Состояние = 'Отменен'
WHERE ID_заказа = 3;
Результат вставки:
ID_заказа | Состояние | Дата_и_время_поступления | Номер_телефона | Улица | Дом | Багаж | Начальная_стоимость | Стоимость_со_скидкой | Комментарий_водителю | Позывной_водителя | Позывной_оператора | ID_скидки |
---|---|---|---|---|---|---|---|---|---|---|---|---|
4 | Новый | 2024-05-01 12:00:00 | 2233445566 | Победы | 50 | FALSE | 600.00 | 540.00 | Без комментариев | 1 | 2 | 1 |
Результат обновления:
ID_заказа | Состояние | Дата_и_время_поступления | Номер_телефона | Улица | Дом | Багаж | Начальная_стоимость | Стоимость_со_скидкой | Комментарий_водителю | Позывной_водителя | Позывной_оператора | ID_скидки |
---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | Отменен | 2024-05-01 09:30:00 | 1122334455 | Советская | 30 | TRUE | 400.00 | 380.00 | Ожидание | 3 | 1 | 3 |
-- Группировка заказов по водителю и фильтрация по общей стоимости
SELECT Позывной_водителя, SUM(Начальная_стоимость) as Общая_стоимость
FROM Заказ
GROUP BY Позывной_водителя
HAVING Общая_стоимость > 1000.00;
Результат:
Позывной_водителя | Общая_стоимость |
---|---|
1 | 1100.00 |
-- Объединение данных из таблиц Заказ и Водитель
SELECT Заказ.ID_заказа, Заказ.Номер_телефона, Водитель.Фамилия, Водитель.Имя
FROM Заказ
JOIN Водитель ON Заказ.Позывной_водителя = Водитель.Позывной_водителя;
Результат:
ID_заказа | Номер_телефона | Фамилия | Имя |
---|---|---|---|
1 | 1234567890 | Иванов | Иван |
2 | 0987654321 | Петров | Петр |
3 | 1122334455 | Сидоров | Сидор |
-- Левое соединение данных из таблиц Заказ и Скидки
SELECT Заказ.ID_заказа, Заказ.Номер_телефона, Скидки.Скидка
FROM Заказ
LEFT JOIN Скидки ON Заказ.ID_скидки = Скидки.ID_скидки;
Результат:
ID_заказа | Номер_телефона | Скидка |
---|---|---|
1 | 1234567890 | 10.00 |
2 | 0987654321 | 15.00 |
3 | 1122334455 | 5.00 |
4 | 2233445566 | 10.00 |
-- Правое соединение данных из таблиц Заказ и Скидки
SELECT Заказ.ID_заказа, Заказ.Номер_телефона, Скидки.Скидка
FROM Заказ
RIGHT JOIN Скидки ON Заказ.ID_скидки = Скидки.ID_скидки;
Результат:
ID_заказа | Номер_телефона | Скидка |
---|---|---|
1 | 1234567890 | 10.00 |
4 | 2233445566 | 10.00 |
2 | 0987654321 | 15.00 |
3 | 1122334455 | 5.00 |
-- Подзапрос для получения заказов с максимальной стоимостью
SELECT * FROM Заказ
WHERE Начальная_стоимость = (SELECT MAX(Начальная_стоимость) FROM Заказ);
Результат:
ID_заказа | Состояние | Дата_и_время_поступления | Номер_телефона | Улица | Дом | Багаж | Начальная_стоимость | Стоимость_со_скидкой | Комментарий_водителю | Позывной_водителя | Позывной_оператора | ID_скидки |
---|---|---|---|---|---|---|---|---|---|---|---|---|
4 | Новый | 2024-05-01 12:00:00 | 2233445566 | Победы | 50 | FALSE | 600.00 | 540.00 | Без комментариев | 1 | 2 | 1 |
-- Пример транзакции
START TRANSACTION;
UPDATE Водитель
SET Состояние = 'Отдыхает'
WHERE Позывной_водителя = 1;
INSERT INTO Заказ (Состояние, Дата_и_время_поступления, Номер_телефона, Улица, Дом, Багаж, Начальная_стоимость, Стоимость_со_скидкой, Комментарий_водителю, Позывной_водителя, Позывной_оператора, ID_скидки)
VALUES ('Новый', '2024-05-02 08:00:00', '3344556677', 'Садовая', '60', FALSE, 700.00, 630.00, 'Без комментариев', 2, 1, 2);
COMMIT
;
Результат:
Позывной_водителя | Состояние |
---|---|
1 | Отдыхает |
ID_заказа | Состояние | Дата_и_время_поступления | Номер_телефона | Улица | Дом | Багаж | Начальная_стоимость | Стоимость_со_скидкой | Комментарий_водителю | Позывной_водителя | Позывной_оператора | ID_скидки |
---|---|---|---|---|---|---|---|---|---|---|---|---|
5 | Новый | 2024-05-02 08:00:00 | 3344556677 | Садовая | 60 | FALSE | 700.00 | 630.00 | Без комментариев | 2 | 1 | 2 |
-- Пример использования оператора CASE для классификации стоимости заказа
SELECT ID_заказа, Номер_телефона, Начальная_стоимость,
CASE
WHEN Начальная_стоимость < 300 THEN 'Дешево'
WHEN Начальная_стоимость BETWEEN 300 AND 600 THEN 'Средне'
ELSE 'Дорого'
END AS Категория_стоимости
FROM Заказ;
Результат:
ID_заказа | Номер_телефона | Начальная_стоимость | Категория_стоимости |
---|---|---|---|
1 | 1234567890 | 500.00 | Средне |
2 | 0987654321 | 300.00 | Средне |
3 | 1122334455 | 400.00 | Средне |
4 | 2233445566 | 600.00 | Средне |
5 | 3344556677 | 700.00 | Дорого |