LAG()函数的默认值是否可为列表达式,还是必须为字面量?
LAG()函数默认值是否支持列表达式?
- LAG()的默认值不需要局限于字面量,主流SQL数据库(MySQL、PostgreSQL、SQL Server、Oracle等)都允许用列表达式当默认值参数。
- 你给出的示例语句
select LAG(column, 1, column) over (Order by column) from table;是完全合法的,它的逻辑是:当当前行没有前一行数据时(比如结果集的第一行),就用当前行的column值来替代默认的NULL。 - 除了列表达式,你还可以用其他标量表达式(比如函数调用、简单计算式)作为默认值,只要表达式返回的数据类型和目标列兼容就行。
内容的提问来源于stack exchange,提问作者UBA
相关产品推荐
相关产品推荐

