You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft SQL Server 2019中实现Kind列重复值仅单次显示的查询方案

需求实现方案

这个需求完全可行,在SQL Server 2019中可以通过窗口函数快速实现,以下是具体的两种实现方法:

方法一:使用ROW_NUMBER()窗口函数

通过分组编号判断是否为组内第一行,仅第一行显示Kind值:

SELECT 
    CASE WHEN ROW_NUMBER() OVER(PARTITION BY kind ORDER BY numberOfProperties) = 1 THEN kind ELSE '' END AS kind,
    properties,
    type,
    numberOfProperties
FROM Colors
ORDER BY kind, numberOfProperties

说明:PARTITION BY kind将数据按Kind分组,ROW_NUMBER()为每组内的行按numberOfProperties排序后编号,编号为1时显示原Kind值,其余行显示空字符串。

方法二:使用LAG()窗口函数

通过对比当前行与上一行的Kind值,仅在Kind值变化时显示:

SELECT 
    CASE WHEN LAG(kind) OVER(ORDER BY kind, numberOfProperties) = kind THEN '' ELSE kind END AS kind,
    properties,
    type,
    numberOfProperties
FROM Colors
ORDER BY kind, numberOfProperties

说明:LAG(kind)获取当前行的上一行Kind值,若与当前行相同则显示空,否则显示当前Kind值,排序规则保证分组内的顺序正确。

导出到Excel的方法

在SQL Server Management Studio(SSMS)中操作:

  • 执行完上述查询后,右键点击结果集,选择「保存结果为」,选择Excel格式(.xlsx/.xls)保存即可。
  • 或者使用「导出数据」向导:依次选择数据源为SQL Server、目标为Excel,按照向导步骤完成数据导出。

内容的提问来源于stack exchange,提问作者Gerrell Bones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 19:25:41