Je travaille sur une application ASP.NET qui est censée produire des données de détecteur pour un interstate choisi, trié par marqueur de mile. Nous avons déterminé que la meilleure façon de le faire serait de le trier selon la longitude (Ouest et Est) ou la latitude (Nord et Sud) selon la direction dans laquelle il se dirige. Voici la requête qui le remplit.SQL dans ASP.NET - Ordre En ne triant qu'un seul type incorrectement
SELECT [ShortWebID], [AvgSpeed], [update_time], [WebName] FROM [vwAverageSpeed]
WHERE (([WebName] LIKE '%' + @WebName + '%') AND ([update_time] > @update_time))
ORDER BY CASE @WebName WHEN '%EB%'THEN [Longitude] WHEN '%WB%' THEN [Longitude] WHEN '%NB%' THEN [Latitude] WHEN '%SB%' THEN [Latitude] END
La vue WebName a différentes listes telles que 'I-64 WB à MP 3.1'. Les ListItems auxquels ils ont accès sont répertoriés comme 'I-64'.
Il y a 4 différents états, et il fonctionne bien pour tout sauf un, I-55/70. Lorsque cette option est choisie, la liste n'est pas triée par la latitude ou la longitude, mais plutôt par l'ordre dans lequel ils se trouvent dans la table. I-55/70 est le seul avec un/dedans. Cela affecterait-il les choses?
Merci d'avance. Editer: Ceux-ci sont listés dans la liste comme 'I-55/70 WB' et ainsi de suite dans le même style que l'exemple ci-dessus. Désolé pour la confusion.
Edit2: Cela a fait l'affaire. Merci!