add home work on 'sql filters'
This commit is contained in:
@@ -0,0 +1,56 @@
|
|||||||
|
-- Задача 1
|
||||||
|
SELECT name, category, price,
|
||||||
|
price * 1.3 AS price_with_markup,
|
||||||
|
price * 1.5 AS price_with_vat
|
||||||
|
FROM products
|
||||||
|
WHERE (price BETWEEN 100 AND 1300)
|
||||||
|
AND category NOT IN ('smartwatch')
|
||||||
|
AND in_stock = 'true';
|
||||||
|
|
||||||
|
-- Вопрос:
|
||||||
|
-- Что лучше читается BETWEEN 100 AND 1300 или price >= 100 AND price <= 1300 и почему?
|
||||||
|
-- Ответ:
|
||||||
|
-- Для меня BETWEEN 100 AND 1300 читается лучше, сразу понятен срез от 100 и 1300.
|
||||||
|
|
||||||
|
|
||||||
|
-- Задача 2
|
||||||
|
SELECT name, price,
|
||||||
|
price * 0.85 AS price_with_discount
|
||||||
|
FROM products
|
||||||
|
WHERE (price < 100 OR price > 1000);
|
||||||
|
|
||||||
|
-- Вопрос:
|
||||||
|
-- Почему важно явно писать скобки в условии с OR, даже если кажется, что и так понятно?
|
||||||
|
-- Ответ:
|
||||||
|
-- Потому что условие может не правильно отобразить результат, AND выполняется раньше OR.
|
||||||
|
-- Для надежности лучше скобками прописывать явно.
|
||||||
|
|
||||||
|
|
||||||
|
-- Задача 3
|
||||||
|
SELECT id, name, category, price
|
||||||
|
FROM products
|
||||||
|
WHERE price >= 100
|
||||||
|
AND category IN ('tablet', 'smartphone', 'mouse')
|
||||||
|
ORDER BY price DESC;
|
||||||
|
|
||||||
|
|
||||||
|
-- Задача 4
|
||||||
|
SELECT name, category, price
|
||||||
|
FROM products
|
||||||
|
WHERE name NOT LIKE '%iPhone%';
|
||||||
|
|
||||||
|
|
||||||
|
-- Задача 5
|
||||||
|
SELECT name, category, price
|
||||||
|
FROM products
|
||||||
|
WHERE name ILIKE '%pro%';
|
||||||
|
|
||||||
|
SELECT name, category, price
|
||||||
|
FROM products
|
||||||
|
WHERE name ILIKE '%mx%'
|
||||||
|
ORDER BY price DESC;
|
||||||
|
|
||||||
|
-- Вопрос:
|
||||||
|
-- В одном предложении объясни, почему для поисковой строки лучше ILIKE '%pro%', а не = 'Pro'.
|
||||||
|
-- Ответ:
|
||||||
|
-- В названии товаров могут быть буквы (в словах) с разными регистрами, при поиске клиенту можен не показать часть товаров только потому что слово выглядить так - PRO а не так - Pro.
|
||||||
Reference in New Issue
Block a user