在 SQL 中,如何显示组的第一行并在组的其余部分隐藏一列

In SQL, how can I show the first row of a group and hide one column in the rest of the group

我正在尝试将 SQL 查询导出到 Excel,我需要这种行为,但在任何地方都找不到。

这是我目前拥有的:

SELECT t1.c1, t2.c2
FROM table1 t1 
INNER JOIN table2 t2 ON t1.id = t2.id;
|c1|    c2     |
----------------
|a | sometext1 |
|a | sometext2 |
|a | sometext3 |
|a | sometext4 |
|b | sometext5 |
|b | sometext6 |
|b | sometext7 |

我想这样显示结果:

|c1|    c2     |
|a | sometext1 |
|  | sometext2 |
|  | sometext3 |
|  | sometext4 |
|b | sometext5 |
|  | sometext6 |
|  | sometext7 |

我只想显示每个组中的第一个项目,并隐藏其余项目以便不在 Excel 中显示。 我正在使用 SQL 服务器。

你真的应该在应用程序而不是数据库中进行这种类型的处理。为什么?因为结果集表示 无序 集。依靠排序来理解数据会使结果变得脆弱。

但你可以。一种方法是:

select (case when seqnum = 1 then c1 end) as c1, c2
from (select, t.*,
              row_number() over (partition by c1 order by (select null)) as seqnum
      from t
     ) t
order by c1, seqnum;