Requête SQL

Fermé
Ruka - 11 déc. 2013 à 21:57
Ruka Nizuka Messages postés 70 Date d'inscription dimanche 7 avril 2013 Statut Membre Dernière intervention 26 novembre 2016 - 12 déc. 2013 à 20:49
Bonjour,

J'aimerais pouvoir afficher des données dans l'ordre alphabétique SANS utiliser ORDER BY.
Est-il possible de faire la même chose qu'un ORDER BY mais avec un WHERE ?
Si oui, aidez moi svp :D

Merci

1 réponse

Bonjour,

SQL est un langage simple(dit de bas niveau) ses fonctionnalités sont rudimentaires et adapté à son rôle: le traitement d'informations dites données.

Ainsi les quelques fonctions de SQL ont un rôle définit et unique.
Donc pour votre réponse c'est possible mais ça va compliquer les choses en rendant le programme plus lourd et lent...

Vous voulez ranger dans l'ordre des résultats il faut utiliser ORDER BY dont c''est le but sinon:

Vous pouvez faire plusieurs requête, une par lettre de l'alphabet ou vous devrez faire un WHERE LIKE.


SELECT * FROM table WHERE colonne LIKE 'a?'; (tous les résultats commençant par la lettre a ).
et pareil pour chacune des 25 autres lettres. Les résultats commençant par chaque lettre ne seront bien sûr pas classé par ordre(puisque c'est ORDER BY qui sert à cela).

J'imagine aussi qu'on peut imaginer un truc du même genre avec GROUP BY, en faisant des sous-requêtes plutôt que plusieurs lignes redondantes(mais bien sûr ce sont les sous-requêtes qui seront redondantes).

Bref vous aurez compris que si la question n'est pas stupide elle est inintéressante et la réponse si elle est fonctionnelle ne peut être que foireuse.
3
j'ajouterais maintenant que je vous ai montré que faire ce que vous voulez faire revient à se tirer une balle dans le pied avant de commencer à courir un marathon en traînant un 4X4 sur frein à main(imaginez tous les like 'aa?' puis like 'ab?' qu'il y a à faire).

J'ajouterais que vous avez des notions bizarre de sql pour marquer de telles choses:

Est-il possible de faire la même chose qu'un ORDER BY mais avec un WHERE ?

ORDER BY et WHERE ne s'excluent ni ne s'opposent, ils servent juste à des choses différentes.
WHERE est une clause qu'il suffit de traduire: où(où est charlie).

Donne moi les pots de confiture sur l'étagère(WHERE).

D'ailleurs la seule requête SELECT qui existe sans utiliser WHERE c'est de tout obtenir(donc aucune clause):

SELECT * FROM table; Donne moi TOUT le contenu de ma table.
Et bien sûr on peut utiliser ORDER BY
SELECT * FROM table ORDER BY identifiant ASC;
Donne moi toute la table "rangée" par identifiant croissant.

Mais comme parfois(souvent) on n'a pas besoin de toute la table il faut utiliser WHERE.

SELECT * FROM table WHERE age_du_capitaine<90;
Tout les résultats de la table où age_du_capitaine est < à 90
et n'exclut bien sûr pas
SELECT * FROM table WHERE age_du_capitaine<90 ORDER BY nom_du_capitaine;
Tout les résultats de la table où age_du_capitaine est < à 90 ET AUSSI ordonnée par nom_du_capitaine.
0
Ruka Nizuka Messages postés 70 Date d'inscription dimanche 7 avril 2013 Statut Membre Dernière intervention 26 novembre 2016
12 déc. 2013 à 20:49
Merci beaucoup d'avoir répondu ! Votre commentaire était enrichissant ^^
Je vais rester sur le ORDER BY alors ^^'
Je vous remercie encore :)
0