2017-01-31 23 views
-1

は私が賢明ASCキロを実行している1つのクエリにしたい| DESCクエリSQLクエリの昇順または降順

私のクエリである:

select p_kms from Places where place_type='1' ORDER BY p_kms DESC 

マイ・アウトは次のとおりです。

p_kms 
81 
71 
70 
602 
52 
493 
272 
245 
2049 
1968 
1948 
1852 
1813 
1811 
1807 
1771 
1758 
174 
1737 
125 
125 
123 
107 
1035 

私はこのクエリを解決するために何ができるのか教えてください。 私はASCDESCの両方の方法を使用しますが、満足のいく結果は得られません。 p_KMSASCに表示するにはどうすればよいですか? DESCmode(ORDER BY p_KMS ASC|DESC) MS SQL Serverのカラムまたはカラム数にインデックスを作成すると(私はバージョン2005を使用しています)、各カラムのインデックスを昇順または降順に指定できます。私はこの選択がなぜここにあるのかを理解するのに苦労しています。バイナリソート技術を使用すると、どちらの方法も高速にルックアップされませんか?私はどのような違いがありますか?

+2

'Places'テーブルスキーマ –

+0

の詳細を提供してください、その列に設定されているデータタイプは何ですか?それがvarcharの場合はINTに変更します – Bhavik

+0

p_kmsのデータ型は何ですか? –

答えて

3

は、テキスト値であるように思わ以来

ORDER BY p_kms * 1 DESC 

は数に変換します、これを試してみてください。または使用する

ORDER_BY cast(p_kms as unsigned) DESC 

テーブルの定義を確認して変更します。あなたは、私がp_kmsがvarchar型であることを前提とし、この

ALTER TABLE your_table MODIFY COLUMN p_kms int; 
0

のようにintにデータ型を変更することができます。だから、注文時に番号にキャストする必要があります:

select p_kms from Places where place_type='1' ORDER BY cast(p_kms as unsigned) DESC 
0

あなたのクエリは右である、しかし、あなたは整数としてフィールド「p_kms」を変更したい、uはそれを得た

ALTER TABLE Places MODIFY COLUMN p_kms int; 

希望:)お楽しみください:)

関連する問題