可以使用IFNULL()函数将null值替换为一个较小的值(例如 -9999),然后将其作为排序键。
例如,假设有一个名为table1的表,其中有一个名为col1的列,可以按以下方式使用FIRST_VALUE()函数:
SELECT col1,
FIRST_VALUE(col1) OVER (ORDER BY IFNULL(col1, -9999)) as first_val_nulls_first
FROM table1
在此示例中,IFNULL()函数用-9999替换了空值,并将其用于排序,以确保空值排在最前面。然后使用第一个排序值作为FIRST_VALUE()函数的输入,以计算每行的第一个值。