代码之家  ›  专栏  ›  技术社区  ›  sam ali

如何使用包含负数的SQL Server对前四个值进行排序

  •  0
  • sam ali  · 技术社区  · 8 年前

    输入文件

        SN  ID
       ------------
        1   55
        2  -25
        3   62
        4  -0.05
        5   0.0 
    

    输出文件应在排序后

     SN  ID
     -------
      3  62
      1  55
      5  0.0
      4 -0.05
      2  -25
    

    使用此SQL Server命令需要按逻辑修改

    select top 4 * 
    from filename 
    order by ID desc
    
    2 回复  |  直到 8 年前
        1
  •  3
  •   Tim Biegeleisen    8 年前

    听起来好像你的 ID 列实际上是某种文本类型,而不是数字类型。如果是这样,则将列强制转换为十进制,然后进行排序可以解决问题:

    SELECT TOP 4 * 
    FROM filename 
    ORDER BY CAST(ID AS DECIMAL(10,4)) DESC;
    

    请注意,如果上述查询确实有效,那么您应该认真考虑不要将数字信息存储为文本。

        2
  •  0
  •   gotqn user3521065    8 年前

    您缺少一个 WHERE 条款如果只需要通过 negative values 只需添加以下内容:

    select top 4 * 
    from filename
    where ID < 0 
    order by ID desc