我正在这是应该输出检测器数据要选择的州际,通过英里标记排序ASP.NET应用程序。我们(南,北),取决于它去哪个方向决心做这将通过经度(西部和东部)或纬度进行排序的最佳方式。下面是填充它的查询。

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

在网站名称视图具有不同列表,如 'I-64在WB MP 3.1'。 他们可以访问列出正如“I-64”。

的时listItems

有4条不同的州际公路,它的做工精细的一切,但一个,我-55/70上。当选择该选项时,列表不会被经纬度来分类,而只是由以便他们在表中。 I-55/70是唯一一个与它/。这会影响到东西?

感谢您提前。

编辑:这些列表中的项目被列为“I-七十零分之五十五WB”等在相同的风格作为上面的例子。遗憾的混乱。

EDIT2:这确实起作用。谢谢!

有帮助吗?

解决方案

在我看来,你的ORDER BY子句不应该在任何情况下工作,因为“CASE @WebName如果‘%EB%’”等不应计算为true。当你正在使用它等价的比较,但通配符运算符(“%”)case语句仅用于LIKE。尝试这个代替:

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

在斜线不应该影响任何东西。

其他提示

I-55/70对应于既非'%EB%'%WB%''%NB%''%SB%'的。

ORDER BY子句总是NULL在这种情况下。

要排序的时候WebNameI-55/70什么领域呢?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top