Ce face INTERVAL()
INTERVAL(n, p1, p2, p3) returnează 0 dacă n < p1, 1 dacă n < p2, 2 dacă n < p3 și așa mai departe. Pragurile trebuie să fie în ordine crescătoare. Este o alternativă scurtă la un CASE pe intervale.
Parametri
| Parametru | Descriere |
|---|---|
n |
Numărul verificat. |
prag1, prag2, ... |
Pragurile, crescătoare. |
Ce returnează
Un număr de la 0 la numărul de praguri.
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE produse (
id INT PRIMARY KEY,
nume VARCHAR(30),
pret DECIMAL(10,2),
stoc INT,
reducere INT
);
INSERT INTO produse VALUES
(1, 'Laptop', 3499.90, 4, NULL),
(2, 'Mouse', 79.50, 25, 10),
(3, 'Birou', 899.00, 0, 15),
(4, 'Scaun', 649.99, 7, NULL),
(5, 'Monitor', 1199.00, 3, 5);
Exemplul 1: Categorii de preț
SELECT nume, pret,
ELT(INTERVAL(pret, 100, 1000) + 1, 'ieftin', 'mediu', 'scump') AS categorie
FROM produse
ORDER BY pret;
Rezultat
+---------+---------+-----------+
| nume | pret | categorie |
+---------+---------+-----------+
| Mouse | 79.50 | ieftin |
| Scaun | 649.99 | mediu |
| Birou | 899.00 | mediu |
| Monitor | 1199.00 | scump |
| Laptop | 3499.90 | scump |
+---------+---------+-----------+
Greșeli frecvente
- Confunzi funcția
INTERVAL()cu expresiaINTERVAL 1 DAYfolosită la date. Sunt lucruri diferite.