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

从数据表中获取前四个值。然后根据条件交换

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

    使用这个命令,我可以得到前四个值,但其中一些值是重复的。所以当时想根据表的序列号进行交换。使用下面的命令来获得前四个值,现在我想交换任何逻辑。

    INPUT
             SN Set name  columname
              1  100 Randy 25
              2  100 many  22
              3  100 sanny 22
              4  100 nanny 35
    Output
            SN Set name  columname
            2  100 many  22
            3  100 sanny 22
            1  100 Randy 25
            4  100 nanny 35
    
    select top 4 * from filename where Set=100 order by columname DESC
    

    根据列名排序,然后根据序列号交换。

    1 回复  |  直到 7 年前
        1
  •  1
  •   jarlh    7 年前

    将返回所需4行的查询包装到派生表中,然后执行相反的操作 ORDER BY 要获得通缉令:

    select *
    from
    (
        select top 4 * from filename where Set=100 order by columname DESC
    ) dt
    order by columname ASC