在我的项目中,我想要一个执行kms明智的ASC | DESC查询
的查询我的查询是:
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
请让我知道如何解决此问题。
我使用ASC
和DESC
这两种方式,但没有得到令人满意的结果。
如何在p_KMS
|中显示ASC
DESC
mode(ORDER BY p_KMS ASC|DESC)
当您在MS SQL Server(我使用的是版本2005)中的列或列数上创建索引时,您可以指定每列上的索引是升序还是降序。我很难理解为什么这个选择就在这里。使用二进制排序技术,任何一种查找都不会那么快吗?它选择哪个订单有什么区别?
答案 0 :(得分:3)
试试这个,
ORDER BY p_kms * 1 DESC
会将其转换为数字,因为它似乎是一个文本值。或者使用
ORDER_BY cast(p_kms as unsigned) DESC
检查表定义并进行更改。您可以将数据类型更改为int
ALTER TABLE your_table MODIFY COLUMN p_kms int;
答案 1 :(得分:0)
我假设p_kms
是一个varchar。因此,您必须在订购时将其转换为数字:
select p_kms from Places where place_type='1' ORDER BY cast(p_kms as unsigned) DESC
答案 2 :(得分:0)
您的查询是正确的,但您想要更改字段" p_kms"作为整数,
ALTER TABLE Places MODIFY COLUMN p_kms int;
希望你明白了:)享受:)