Примеры могут быть использованы для практикума по запросам MySQL.
Запрос Q041. В случае, когда оператор IF используется несколько раз, удобнее заменить его оператором CASE. Оператор CASE (оператор множественного выбора) используется для оценки логического выражения и выполнения того или иного действия в зависимости от результата. В следующем примере поставленная партия считается «малой», если количество товара в партии меньше 500. В противном случае, то есть если количество товара больше или равно 500, партия считается «большой»:
SELECT dt, product_id, amount,
CASE WHEN amount<500 THEN "малая" ELSE "большая" END AS mark
FROM m_income;
Запрос Q042. В следующем запросе MySQL если количество товара в поступившей партии меньше 300, то партия считается «малой». В противном случае, то есть если условие amount<300 не выполняется, то проверяется является ли количество товаров в партии меньше 500. Если размер партии меньше 500, то она считается «средней». В противном случае партия считается «большой»:
SELECT dt, product_id, amount,
IF(amount<300,"малая",
IF(amount<1000,"средняя","большая")) AS mark
FROM m_income;
Запрос Q043. В следующем запросе MySQL если количество товара в поступившей партии меньше 300, то партия считается «малой». В противном случае, то есть если условие amount<300 не выполняется, то проверяется является ли количество товаров в партии меньше 500. Если размер партии меньше 500, то она считается «средней». В противном случае партия считается «большой»:
SELECT dt, product_id, amount,
CASE
WHEN amount<300 THEN "малая"
WHEN amount<1000 THEN "средняя"
ELSE "большая"
END AS mark
FROM m_income;
Запрос Q044. В этом примере запроса MySQL продажи разделяются на три группы: малые (до 150), средние (от150 до 300), большие (300 и более). Далее, для каждой группы вычисляется итоговая сумма:
SELECT Category, SUM(outcome_sum) AS Ctgry_Total
FROM (SELECT amount*price AS outcome_sum,
IF(amount*price<150,"малая",
IF(amount*price<300,"средняя","большая")) AS Category
FROM m_outcome) AS t
GROUP BY Category;
Запрос Q045. Функция DateAdd используется для прибавления дней, месяцев или лет к данной дате и получения новой даты. Следующий запрос:
1) к дате из поля dt прибавляет 30 дней и отображает новую дату в поле dt_plus_30d;
2) к дате из поля dt прибавляет 1 месяц и отображает новую дату в поле dt_plus_1m:
SELECT dt, DATE_ADD(dt, INTERVAL 30 DAY) AS dt_plus_30d,
DATE_ADD(dt, INTERVAL 1 MONTH) AS dt_plus_1m
FROM m_income;