kinila 发表于 2017-12-14 11:42:07

SQL Server中order by的使用,我们来填坑

  看似很简单是不是?

单列排序,没有任何问题
select * from tableA  
where age>1
  
order by age /*后面可以跟上ASC、DESC,默认是ASC升序排列*/

多列排序中的坑
  如果是多个列排序呢?注意这里的age有很多一样的
select * from tableA
  
where>  
order by age, name desc
  上面的写法是达不到预想的效果的,原因就在于,如果指定了多个排序列,而且还指定了降序排列,那么就需要为每一个列指定降序排列,上面的写法desc将只作用于name字段上,而age字段缺省的情况下依然是ASC排序,知道了这个出现诡异的排序结果也就很好解释了。
  


正确的写法
select * from tableA
  
where>  
order by age desc, name desc
页: [1]
查看完整版本: SQL Server中order by的使用,我们来填坑