Pregunta

Estoy trabajando en una aplicación ASP.NET que se supone que los datos del detector de salida de un estado a otro elegido, ordenado por la milla. Determinamos la mejor manera de hacer esto sería clasificarlos por longitud (occidental y oriental) o la latitud (Norte y Sur) dependiendo de la dirección que va. Aquí está la consulta que lo llena.

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 vista NombreWeb tiene diferentes listados como 'I-64 WB en MP 3.1'. Los ListItems los que tienen acceso se enumeran simplemente como 'I-64'.

Hay 4 diferentes carreteras interestatales, y está funcionando muy bien para todo, menos uno, I-55/70. Cuando se elige esta opción, la lista no está ordenada por la latitud o longitud, pero en su lugar sólo por el orden en que están en la mesa. I-55/70 es el único con un / en ella. Afectaría esto a las cosas?

Gracias de antemano.

Edit: Estos se muestran en el elemento de la lista como 'I-55/70 WB' y así sucesivamente en el mismo estilo que el ejemplo anterior. Lo sentimos acerca de la confusión.

Edit2: Que hizo el truco. Gracias!

¿Fue útil?

Solución

Me parece que su cláusula ORDER BY no debe trabajar en todos los casos porque "CASO CUANDO @WebName '% EB%'", etc., no debe evaluar como true. La declaración del caso y cuando se utilice lo hace una comparación de equivalencia pero los comodines ( "%") sólo se utilizan para similares. Tal vez puedas probar:

ORDER BY CASE 
WHEN @WebName LIKE '%EB%' THEN [Longitude] 
WHEN @WebName LIKE '%WB%' THEN [Longitude] 
WHEN @WebName LIKE '%NB%' THEN [Latitude] 
WHEN @WebName LIKE '%SB%' THEN [Latitude] 
END

La barra no debe afectar a nada.

Otros consejos

I-55/70 corresponde a ninguno de '%EB%, '%WB%', '%NB%' o '%SB%'.

Su cláusula ORDER BY siempre NULL en ese caso.

¿Qué haces campo que desea ordenar cuando el WebName es I-55/70?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top