Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3062 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  UNION ALL et ordre des résultats...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

UNION ALL et ordre des résultats...

n°782241
Arjuna
Aircraft Ident.: F-MBSD
Posté le 30-06-2004 à 11:46:44  profilanswer
 

J'ai remarqué que lorsqu'on utilise pas de clause "ORDER BY" ou "GROUP BY", le SGBD retourne systématiquement les lignes dans l'ordre des UNION ALL.
 
Est-ce que c'est vraiment systématique, ou si dans certains cas cette règle peut ne pas être vérifiée ?
 
Par exemple.
 
Mettons une table de traduction de noms de produits. L'anglais est systématiquement rempli, mais le français pas toujours. Pour retrouver le libellé à afficher à un client Français, ma requête actuelle est donc :
 
select 1, nompro from prm where codpro = '1A00473' and codlan = 'FRA'
union all
select 2, nompro from prm where codpro = '1A00473' and codlan = 'ENG'
order by 1
 
=> Je n'ai qu'à récupérer la première ligne afin d'obtenir le "nompro" a afficher pour le client français.
 
Mais je voudrais savoir si je suis certain de retourner le même résultat en faisant ça :
 
select nompro from prm where codpro = '1A00473' and codlan = 'FRA'
union all
select nompro from prm where codpro = '1A00473' and codlan = 'ENG'
 
En effet, ce type de requêtes, je risque d'en éxécuter une bonne cinquantaines sur certaines page, et étant donné qu'il y a un grand nombre d'autres requêtes plutôt complexes derrière, je cherche à grapiller la moindre ms. Hors, il est connu que la clause "order by" est source de ralentissement des requêtes, donc si je pouvais la gicler sans risque...


Message édité par Arjuna le 30-06-2004 à 11:47:19
mood
Publicité
Posté le 30-06-2004 à 11:46:44  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  UNION ALL et ordre des résultats...

 

Sujets relatifs
[SQL]Classer résultats requête suivant une liaison réflexive.comment éviter d'afficher des résultats doubles ?
[resolu] Afficher le contenu de la base de donnée dans l'ordrenom des fichiers par ordre alphabétique...
union en accesOrdre des résultats d'une requête
[algo] approximation du sinus : on va jusqu'a quel ordre ?[C#] choix dans combobox -> affiche les résultats du datagrid ?
[MYSQL]Addition des resultats d'une requete 
Plus de sujets relatifs à : UNION ALL et ordre des résultats...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR