Les expressions condicionals en SQL permeten executar diferents accions basades en certes condicions. Aquestes expressions són molt útils per a la manipulació de dades i la creació de consultes dinàmiques. En aquest tema, explorarem les expressions condicionals més comunes en SQL: CASE
, IF
, IFNULL
, i COALESCE
.
- L'expressió CASE
L'expressió CASE
és una estructura condicional que permet retornar valors diferents basats en condicions específiques.
Sintaxi
Exemple
Suposem que tenim una taula empleats
amb les següents dades:
id | nom | salari |
---|---|---|
1 | Anna | 50000 |
2 | Joan | 60000 |
3 | Maria | 70000 |
4 | Pere | 80000 |
Volem crear una consulta que classifiqui els empleats en tres categories de salari: 'Baix', 'Mitjà' i 'Alt'.
SELECT nom, salari, CASE WHEN salari < 60000 THEN 'Baix' WHEN salari BETWEEN 60000 AND 70000 THEN 'Mitjà' ELSE 'Alt' END AS categoria_salari FROM empleats;
Resultat
nom | salari | categoria_salari |
---|---|---|
Anna | 50000 | Baix |
Joan | 60000 | Mitjà |
Maria | 70000 | Mitjà |
Pere | 80000 | Alt |
- L'expressió IF
L'expressió IF
és una altra manera de crear condicions en SQL, però és més comuna en sistemes de bases de dades com MySQL.
Sintaxi
Exemple
Utilitzant la mateixa taula empleats
, podem classificar els empleats en 'Alt' o 'Baix' segons si el seu salari és superior a 65000.
Resultat
nom | salari | categoria_salari |
---|---|---|
Anna | 50000 | Baix |
Joan | 60000 | Baix |
Maria | 70000 | Alt |
Pere | 80000 | Alt |
- L'expressió IFNULL
L'expressió IFNULL
s'utilitza per substituir valors NULL
per un valor específic.
Sintaxi
Exemple
Suposem que tenim una taula productes
amb les següents dades:
id | nom | preu |
---|---|---|
1 | Producte1 | 100 |
2 | Producte2 | NULL |
3 | Producte3 | 200 |
Volem substituir els valors NULL
en la columna preu
per 0.
Resultat
nom | preu |
---|---|
Producte1 | 100 |
Producte2 | 0 |
Producte3 | 200 |
- L'expressió COALESCE
L'expressió COALESCE
retorna el primer valor no NULL
d'una llista d'expressions.
Sintaxi
Exemple
Utilitzant la mateixa taula productes
, podem utilitzar COALESCE
per substituir els valors NULL
en la columna preu
per 0.
Resultat
nom | preu |
---|---|
Producte1 | 100 |
Producte2 | 0 |
Producte3 | 200 |
Exercicis pràctics
Exercici 1
Utilitzant la taula empleats
, crea una consulta que classifiqui els empleats en tres categories de salari: 'Baix', 'Mitjà' i 'Alt' utilitzant l'expressió CASE
.
Solució
SELECT nom, salari, CASE WHEN salari < 60000 THEN 'Baix' WHEN salari BETWEEN 60000 AND 70000 THEN 'Mitjà' ELSE 'Alt' END AS categoria_salari FROM empleats;
Exercici 2
Utilitzant la taula productes
, crea una consulta que substitueixi els valors NULL
en la columna preu
per 0 utilitzant l'expressió IFNULL
.
Solució
Exercici 3
Utilitzant la taula productes
, crea una consulta que substitueixi els valors NULL
en la columna preu
per 0 utilitzant l'expressió COALESCE
.
Solució
Conclusió
Les expressions condicionals en SQL són eines poderoses que permeten crear consultes dinàmiques i flexibles. Hem explorat les expressions CASE
, IF
, IFNULL
, i COALESCE
, i hem vist com utilitzar-les per manipular i analitzar dades de manera efectiva. Amb la pràctica, aquestes expressions es convertiran en una part essencial del teu arsenal de SQL.
Curs de SQL
Mòdul 1: Introducció a SQL
Mòdul 2: Consultes bàsiques de SQL
Mòdul 3: Treballar amb múltiples taules
Mòdul 4: Filtratge avançat de dades
- Utilitzar LIKE per a coincidències de patrons
- Operadors IN i BETWEEN
- Valors NULL i IS NULL
- Agrupar dades amb GROUP BY
- Clàusula HAVING
Mòdul 5: Manipulació de dades
Mòdul 6: Funcions avançades de SQL
Mòdul 7: Subconsultes i consultes niades
- Introducció a les subconsultes
- Subconsultes correlacionades
- EXISTS i NOT EXISTS
- Utilitzar subconsultes en les clàusules SELECT, FROM i WHERE
Mòdul 8: Índexs i optimització del rendiment
- Comprendre els índexs
- Crear i gestionar índexs
- Tècniques d'optimització de consultes
- Analitzar el rendiment de les consultes
Mòdul 9: Transaccions i concurrència
- Introducció a les transaccions
- Propietats ACID
- Instruccions de control de transaccions
- Gestionar la concurrència
Mòdul 10: Temes avançats
Mòdul 11: SQL en la pràctica
- Casos d'ús del món real
- Millors pràctiques
- SQL per a l'anàlisi de dades
- SQL en el desenvolupament web