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

如何用同分组下一行值填充首行NULL?SQL查询实现

解决方案

可以通过两种常见方法实现需求:

方法一:使用窗口函数 LEAD()(推荐)

利用LEAD()窗口函数直接获取同Name分组中下一行的Title值,再替换当前行的NULL值:

SELECT 
    Name,
    COALESCE(Title, LEAD(Title) OVER (PARTITION BY Name ORDER BY Row)) AS Title,
    Row
FROM table1
WHERE Row = 1;

关键部分说明:

  • PARTITION BY Name:按Name分组,确保只在同一个用户的行中查找下一行
  • ORDER BY Row:指定分组内的排序规则,保证取到的是紧邻的下一行(即Row=2的记录)
  • COALESCE(Title, ...):因为Row=1的Title为NULL,所以用LEAD()获取的下一行Title替换它

方法二:使用自连接

如果你的SQL环境不支持窗口函数,可以用自连接关联同Name下Row值+1的记录:

SELECT 
    t1.Name,
    t2.Title,
    t1.Row
FROM table1 t1
INNER JOIN table1 t2 
    ON t1.Name = t2.Name 
    AND t2.Row = t1.Row + 1
WHERE t1.Row = 1;

逻辑说明:

通过INNER JOIN将Row=1的记录与同Name下Row=2的记录关联,直接取后者的Title值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:15:35