如何在SQL Server或Microsoft Access中按绝对值对列进行排序?

时间:2012-04-23 04:32:37

标签: sql-server ms-access sorting

列中的值具有负整数和正整数。我想按照绝对值对列进行排序。我最好如何在Access或SQL中执行此操作?感谢。

3 个答案:

答案 0 :(得分:4)

在MSSQL中:

在要排序的列上使用ABS()功能。即:

SELECT a, ABS(b) FROM tbl ORDER BY ABS(b)

答案 1 :(得分:2)

select col1, Abs(col2) from table Order by 2;

按2排序,在select语句中取第2列,您可以指定任何代表select中序列的数字
编辑:
这不是推荐的做法,因为:

  1. 这不明显/明确
  2. 如果列顺序发生更改,则查询仍然有效,因此您可能会冒险按照您不想要的内容进行排序

  3. 另一种方法是使用Column Alias:类似于:

    select Abs(col1) as ABSID, * from Table order by ABSID;
    

答案 2 :(得分:1)

排序有两种类型,升序和降序。 Sql提供函数(order by)asc用于升序和desc用于降序...

例如:一个表包含值列表,例如 员工ID 01 02 06 08 04

值可按升序排序,

  

按Employee_ID ASC

选择Employee_ID FROM tablename order

以升序列出值,例如: 员工ID 01 02 04 06 08

值可以按降序排序,

  

按Employee_ID DESC

选择Employee_ID FROM tablename order

这会按降序列出值,例如: 员工ID 08 06 04 02 01

希望,你得到了答案。回过头来澄清......