如何实现同一列向下填充值

NuoMi 60 信誉分
2024-05-20T02:31:28.3766667+00:00

我有一张Demo表,status列中有些行是NULL,我想要将这些NULL向下填充,比如说:234行填充为‘RE’;第6行填充为‘PR‘。

DECLARE @Demo TABLE (ID INT, status VARCHAR(2))
INSERT INTO @Demo VALUES
(1,'RE'),
(2,NULL),
(3,NULL),
(4,NULL),
(5,'PR'),
(6,NULL),
(7,'RE')

有什么方法吗?

SQL Server
SQL Server
Microsoft 关系数据库管理和分析系统的一个系列,用于实现电子商务、业务线和数据仓库解决方案。
105 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. CosmogHong-MSFT 24,026 信誉分 Microsoft 供应商
    2024-05-20T02:57:21.95+00:00

    试试这个查询:

    SELECT D1.*, COALESCE(D1.status, S.status) AS New_Status
    FROM @Demo D1 OUTER APPLY
         (SELECT TOP 1 status
          FROM @Demo D2
          WHERE D2.ID < D1.ID and D2.status IS NOT NULL
          ORDER BY D2.ID DESC
         ) S;
    

    如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。


0 个其他答案

排序依据: 非常有帮助