跳到主要内容
翻译页面

本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。

LEAD

返回针对分区中后面的某一行对表达式求值的结果。

LEAD() 的第一种形式返回针对分区中下一行对表达式求值的结果。如果没有下一行(因为当前行是最后一行),则返回 NULL。

如果提供了偏移量参数,它必须是非负整数。返回值是针对分区内当前行之后第 offset 行对表达式求值的结果。如果偏移量为 0,则针对当前行对表达式求值。如果当前行之后不存在第 offset 行,则返回 NULL。

如果还提供了默认值,则当偏移量所指的行不存在时,返回该默认值而不是 NULL。

另请参阅: [SELECT] [LAG]


语法​

SELECT LEAD(expr) OVER ([PARTITION BY column] ORDER BY column) FROM <multipartIdentifier>;

SELECT LEAD(expr, offset) OVER ([PARTITION BY column] ORDER BY column) FROM <multipartIdentifier>;

SELECT LEAD(expr, offset, default) OVER ([PARTITION BY column] ORDER BY column) FROM <multipartIdentifier>;

参数​

expr 针对后面的行求值的表达式。

offset 可选。一个非负整数,指定向后查看的行数。默认为 1。

default 可选。偏移量所指的行不存在时返回的值。默认为 NULL。

PARTITION BY column 可选。将结果集划分为多个分区。LEAD 函数分别在每个分区内应用。

ORDER BY column 指定处理行的顺序。

返回值​

返回表达式针对指定的后面一行求值所得的值;如果不存在这样的行,则返回 NULL(或默认值)。


示例​

向后查看下一个发布版本​

-- Compare each release to previous and next release dates
SELECT
tag_name,
name,
published_at,
LAG(tag_name, 1) OVER (ORDER BY published_at) as previous_release,
LEAD(tag_name, 1) OVER (ORDER BY published_at) as next_release
FROM github.repos.releases
WHERE owner = 'stackql'
AND repo = 'stackql'
ORDER BY published_at;

有关更多信息,请参阅 https://sqlite.org/windowfunctions.html#built-in_window_functions。