質問

私はマイルマーカーによってソート選ばれた州間、用の出力検出器データになっている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

WebNameビューには、このような 'MP 3.1でI-64 WB' などさまざまなリストを持っています。 彼らはへのアクセス権を持っているのListItemは、単に「I-64」と記載されています。

があり、4つの異なる州間高速道路だし、それは、I-70分の55 1以外のすべてのために正常に動作しています。そのオプションを選択すると、リストは緯度や経度によって並べ替えられ、代わりにちょうど彼らがテーブルにいるという順序によるものです。 I-55/70は、その中に/を持つ唯一のものです。これは、物事に影響を与えますか?

事前にありがとうございます。

編集:これらは、「I-70分の55 WB」としてリスト項目に記載されているというように、上記の例と同じスタイルでされています。混乱については申し訳ありません。

EDIT2:トリックをしました。ありがとう!

役に立ちましたか?

解決

これは、「『%EBの%』 WHEN CASEの@WebName」などがtrueと評価べきではありませんので、いずれのケースでは動作しないはずですORDER BY句は、私には思えます。 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