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

如何将指定名称第二行的Title值填充至其第一行NULL字段并保留该行?

解决SQL中填充同组下一行Title到首行的问题

你需要提取每个Name对应的Row=1的记录,同时把该Name下紧接着的下一行(Row=2)的Title填充到首行的NULL字段中,这里提供几种可行的解决方案:

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

LEAD()函数可以直接获取同组内下一行的指定字段值,语法简洁且效率较高,适合MySQL 8.0+、PostgreSQL、SQL Server等支持窗口函数的数据库:

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

说明:PARTITION BY Name按姓名分组,ORDER BY Row确保按行号顺序取数,LEAD(Title)会自动获取当前行(Row=1)的下一行(Row=2)的Title值,刚好替换首行的NULL。

方法二:自连接查询

如果你的数据库不支持窗口函数,可以用自连接的方式关联同姓名下的下一行记录:

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;

说明:通过t1.Row + 1关联到同姓名的下一行记录,直接取t2的Title作为结果值。

方法三:子查询方式

也可以通过子查询在SELECT语句中直接获取对应下一行的Title:

SELECT 
    Name,
    (SELECT Title FROM table1 t2 WHERE t2.Name = t1.Name AND t2.Row = t1.Row + 1) AS Title,
    Row
FROM table1 t1
WHERE Row = 1;

说明:针对每个Row=1的记录,子查询会找到同姓名下Row=2的Title值,填充到当前行的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 07:30:51