SELECT CONCAT_WS(' ','Un(e)', nom_courant, 'coûte', prix,
'euros.') AS Solution
FROM Espece;
2. Afficher les chats dont la deuxième lettre du nom est un "a"
Secret (cliquez pour afficher)
Code : SQL
SELECT Animal.nom, Espece.nom_courant
FROM Animal
INNER JOIN Espece ON Animal.espece_id = Espece.id
WHERE Espece.nom_courant = 'Chat'
AND SUBSTRING(nom, 2, 1) = 'a';
Puis on corse un peu
1. Afficher les noms des perroquets en remplaçant les "a" par "@" et les "e" par "3" pour en
faire des perroquets Kikoolol
Secret (cliquez pour afficher)
Code : SQL
SELECT REPLACE(REPLACE(nom, 'a', '@'), 'e', '3') AS Solution
FROM Animal
INNER JOIN Espece ON Animal.espece_id = Espece.id
WHERE Espece.nom_courant LIKE 'Perroquet%';
Une petite explication s'impose avant de vous laisser continuer. Comme vous voyez, il est tout à fait possible d'imbriquer
plusieurs fonctions. Le tout est de le faire correctement, et pour cela, il faut procéder par étape. Ici, vous voulez faire deux
remplacements successifs dans une chaîne de caractères (en l’occurrence, le nom des perroquets). Donc, vous effectuez un
premier remplacement, en changeant les "a" par les "@" : REPLACE(nom, 'a', '@'). Ensuite, sur la chaîne résultant
de ce premier remplacement, vous effectuez le second : REPLACE(REPLACE(nom, 'a', '@'), 'e', '3').
Logique, non ?
2. Afficher les chiens dont le nom a un nombre pair de lettres
Secret (cliquez pour afficher)
Code : SQL
SELECT nom, nom_courant
FROM Animal
INNER JOIN Espece ON Animal.espece_id = Espece.id
WHERE nom_courant = 'Chien'
AND CHAR_LENGTH(nom)%2 = 0;
-- OU
SELECT nom, nom_courant
Partie 3 : Fonctions : nombres, chaînes et agrégats
170/414
www.openclassrooms.com
'euros.') AS Solution
FROM Espece;
2. Afficher les chats dont la deuxième lettre du nom est un "a"
Secret (cliquez pour afficher)
Code : SQL
SELECT Animal.nom, Espece.nom_courant
FROM Animal
INNER JOIN Espece ON Animal.espece_id = Espece.id
WHERE Espece.nom_courant = 'Chat'
AND SUBSTRING(nom, 2, 1) = 'a';
Puis on corse un peu
1. Afficher les noms des perroquets en remplaçant les "a" par "@" et les "e" par "3" pour en
faire des perroquets Kikoolol
Secret (cliquez pour afficher)
Code : SQL
SELECT REPLACE(REPLACE(nom, 'a', '@'), 'e', '3') AS Solution
FROM Animal
INNER JOIN Espece ON Animal.espece_id = Espece.id
WHERE Espece.nom_courant LIKE 'Perroquet%';
Une petite explication s'impose avant de vous laisser continuer. Comme vous voyez, il est tout à fait possible d'imbriquer
plusieurs fonctions. Le tout est de le faire correctement, et pour cela, il faut procéder par étape. Ici, vous voulez faire deux
remplacements successifs dans une chaîne de caractères (en l’occurrence, le nom des perroquets). Donc, vous effectuez un
premier remplacement, en changeant les "a" par les "@" : REPLACE(nom, 'a', '@'). Ensuite, sur la chaîne résultant
de ce premier remplacement, vous effectuez le second : REPLACE(REPLACE(nom, 'a', '@'), 'e', '3').
Logique, non ?
2. Afficher les chiens dont le nom a un nombre pair de lettres
Secret (cliquez pour afficher)
Code : SQL
SELECT nom, nom_courant
FROM Animal
INNER JOIN Espece ON Animal.espece_id = Espece.id
WHERE nom_courant = 'Chien'
AND CHAR_LENGTH(nom)%2 = 0;
-- OU
SELECT nom, nom_courant
Partie 3 : Fonctions : nombres, chaînes et agrégats
170/414
www.openclassrooms.com
