sql查询升序或降序

时间:2017-01-31 09:42:28

标签: php sql

在我的项目中,我想要一个执行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

请让我知道如何解决此问题。 我使用ASCDESC这两种方式,但没有得到令人满意的结果。 如何在p_KMS |中显示ASC DESC mode(ORDER BY p_KMS ASC|DESC) 当您在MS SQL Server(我使用的是版本2005)中的列或列数上创建索引时,您可以指定每列上的索引是升序还是降序。我很难理解为什么这个选择就在这里。使用二进制排序技术,任何一种查找都不会那么快吗?它选择哪个订单有什么区别?

3 个答案:

答案 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;

希望你明白了:)享受:)