Les Allergies
Alimentaires
Posez votre question Signaler

[SQL] Order by champs calculés

deus 94Messages postés 20 novembre 2002Date d'inscription - Dernière réponse le 31 août 2005 à 11:34
Salut à tous,

J’ai une requete SQL que je voudrais trier sur base d'1 champ qui est dérivé d’autres champs de cette même requête.
Ma question serait de savoir si mon champ dérivé sera calculé 2x (une fois pour le SELECT et une fois pour le ORDER BY) auquel cas il est probablement préférable de passer par une subquery.
Voilà mes 2 hypothèses (ma requete est ici un peu simplifiée mais c’est le principe)
Hypo 1 :
SELECT
data2.entity_nr,
data2.column_b,
data2.column_c,
data2.column_d,
data2.column_e,
data2.column_b-data2.column_c-data2.column_d+data2.column_d AS column_f,
FROM
data2
ORDER BY
data2.column_b-data2.column_c-data2.column_d+data2.column_d DESC --column f

Hypo 2 :
SELECT * FROM (
SELECT
data2.entity_nr,
data2.column_b,
data2.column_c,
data2.column_d,
data2.column_e,
data2.column_b-data2.column_c-data2.column_d+data2.column_d AS column_f,
FROM
data2
)derived
ORDER by derived.column_f DESC

Vous opteriez pour quelle solution ?

Merci

Nico
Lire la suite 

[SQL] Order by champs calculés »

1 réponses
Réponse
+0
moins plus
Sql server gère mal les sous-requete (d'un point de vue des perfs) par rapport à d'autre base

mais tu peux regarder le plan d'exécution pour déterminer la meilleur implémentation (option dans le query analyser)
Ajouter un commentaire
Ce document intitulé « [SQL] Order by champs calculés » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?