Requete SQL (trier une fiche à partir d'un ID)

Signaler
Messages postés
262
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
27 février 2012
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour,

Y a-t-il un moyen de trier une fiche d'une base de données (ACCESS) en ASP à partir d'un ID ? C'est à dire de commencer par cet ID et les autres à la suite.

D'avance merci.
Fabiano13

4 réponses

Messages postés
240
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
18 février 2011

Bonjour,
Tu peux être plus précis ? Lorsque tu évoque le tri d'une fiche, tu parle d'une table, j'imagine ? 
Si c'est juste le tri sur une colonne,
alors c'est ORDER BY TaColonne en fin de requête.
@+
Messages postés
262
Date d'inscription
mardi 26 février 2002
Statut
Membre
Dernière intervention
27 février 2012

Merci pour ta réponse.

Voila l'ordre habituel des IDs : 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15....

Ce comme je veux trier ma table, c'est commencer par l'ID (9) et les autres par la suite, comme ce qui suit : 9,1,2,3,4,5,6,7,8,10,11,12,13,14,15...
Messages postés
240
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
18 février 2011

Je me disais aussi ... trop facile ma réponse ...
Désolé mais je ne vois pas sur ce coup! (peut-être en générant une table temporaire et en la remplissant par deux selects différents ?)
Bon courage et n'hésite pas à donner la solution ... ça m'intéresse aussi !!
@+
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Salut,

Marrant comme besoin.
Je ne connais pas plus que ça le moteur Access et les possibilités de son langage de requêtage mais dans le principe le but ici serait d'utiliser un tri sur 2 colonnes : une calculée de manière à placer 9 en tête et l'autre serait la colonne d'ID.

Exemples sous SQL Server 2005 avec la base AdventureWorks :
-- Construction avec CASE...WHEN
SELECT [EmployeeID],
    Sort=CASE WHEN [EmployeeID]=9 THEN 0 ELSE 1 END
FROM [HumanResources].[Employee]
ORDER BY Sort, [EmployeeID]



-- ou directement
SELECT [EmployeeID]
FROM [HumanResources].[Employee]
ORDER BY (CASE WHEN [EmployeeID]=9 THEN 0 ELSE 1 END), [EmployeeID]  -- tri avec ID 9 en tête





-- Construction avec NULLIF
SELECT [EmployeeID],
    Sort=NULLIF([EmployeeID], 9)
FROM [HumanResources].[Employee]
ORDER BY Sort, [EmployeeID]



-- ou directement
SELECT [EmployeeID]
FROM [HumanResources].[Employee]
ORDER BY (NULLIF([EmployeeID], 9)), [EmployeeID] -- tri avec ID 9 en tête










Après il faut faire les tests nécessaires pour adopter la meilleure solution suivant le volume de données en situation réelle.

Sinon concernant la solution table temporaire : quitte à passer par 2 requêtes autant passer par une construction avec UNION et pas une table temporaire.

/*
coq
MVP Visual C#
CoqBlog
*/