Bonjour à tous
Comme je l'ai déjà dit, malgré mon âge avancé je suis un total débutant en SQL, langage dont j'étais parvenu à me passer jusque récemment.
Je n'ai encore jamais écrit de procédure stockée et j'ai besoin de votre aide pour ma première procédure.
Mon problème est de trier des adresses postales en "Zones", à savoir
01-paris
02-idf
03-other
99-abroad
J'ai actuellement un code PHP que j'exécute sur les résultats d'une requête, qui contient la fonction suivante
Je préfèrerais écrire une fonction similaire en SQL de façon à pouvoir écrire une requête
ce qui me permettrait de récupérer les données dans l'ordre qui m'intéresse, plutôt que de devoir faire ce tri en PHP.
Je sais que ce doit être possible, j'ai essayé de le faire mais tous mes essais se traduisent par des messages "Erreur de syntaxe" sans explication sur ces erreurs.
Merci de votre aide.
Modifié par PapyJP (15 Feb 2022 - 15:02)
Comme je l'ai déjà dit, malgré mon âge avancé je suis un total débutant en SQL, langage dont j'étais parvenu à me passer jusque récemment.
Je n'ai encore jamais écrit de procédure stockée et j'ai besoin de votre aide pour ma première procédure.
Mon problème est de trier des adresses postales en "Zones", à savoir
01-paris
02-idf
03-other
99-abroad
J'ai actuellement un code PHP que j'exécute sur les résultats d'une requête, qui contient la fonction suivante
function getArea($zip, $country) {
if(is_null($country)) $country = 'France';
if($country != 'France') return '99-abroad';
if(strlen($zip) != 5) return '03-other';
switch(substr($zip, 0, 2)) {
case '75':
return '01-paris';
case '77': case '78': case '91': case '92': case '93': case '94': case '95':
return '02-idf';
default:
return '03-other';
}
}
Je préfèrerais écrire une fonction similaire en SQL de façon à pouvoir écrire une requête
SELECT addr.street, addr.town, addr.zip, addr.country,
GetArea(addr.zip, addr.country) as area
FROM Addresses
ORDER BY area, zip
;
ce qui me permettrait de récupérer les données dans l'ordre qui m'intéresse, plutôt que de devoir faire ce tri en PHP.
Je sais que ce doit être possible, j'ai essayé de le faire mais tous mes essais se traduisent par des messages "Erreur de syntaxe" sans explication sur ces erreurs.
Merci de votre aide.
Modifié par PapyJP (15 Feb 2022 - 15:02)