代码之家  ›  专栏  ›  技术社区  ›  Rob Koch

SQL Server:显示分组记录的第一行

  •  1
  • Rob Koch  · 技术社区  · 15 年前

    正在尝试编写一个查询,该查询将输出类似于下面最后一批记录的内容。当然,它可以在ReportingServices和CrystalReports中工作,但只需在这里抛开它,看看在SSMS/QA中是否可行:

    Table:
    id name amount
    -- ---- ------
     1 rob   23.00
     2 rob   34.00
     3 dan   45.00
     4 dan   56.00
    
    select name, amount from t1 
    Query resulting in:
    name amount
    ---- ------
    rob   23.00
    rob   34.00
    dan   45.00
    dan   56.00
    
    DESIRED result:
    name amount
    ---- ------
    rob   23.00
          34.00
    dan   45.00
          56.00
    

    谢谢!

    1 回复  |  直到 15 年前
        1
  •  3
  •   eKek0    15 年前

    试试这个:

    SELECT CASE WHEN _rank = 1 THEN name ELSE '' END AS name, amount
    FROM (
        SELECT name, amount,
            ROW_NUMBER() OVER (PARTITION BY name ORDER BY amount ASC) AS _rank
        FROM t1
    ) q