根据具有值

时间:2015-12-10 10:00:17

标签: sql sql-server tsql

以下是数据

    Mon, 02 Nov 2015    05:00
NULL    06:00
NULL    07:00
NULL    08:00
NULL    09:00
NULL    10:00
NULL    11:00
NULL    12:00
NULL    13:00
NULL    14:00
NULL    15:00
NULL    16:00
NULL    17:00
Tue, 03 Nov 2015    06:00
NULL    07:00
NULL    08:00
NULL    09:00
NULL    10:00
NULL    11:00
NULL    12:00
NULL    13:00
NULL    14:00
NULL    15:00
NULL    16:00
NULL    17:00

我想将NULL值替换为第1行的值作为日期。该表包含多个日期的此类数据。当该特定日期的数据开始时,它包含该值为空的日期值。第二列描述了那一天的时间。

请帮助。拉吉夫

1 个答案:

答案 0 :(得分:0)

以下可能有效。我没有表格来测试它,而SQLFiddle正在抛出错误(因为它有一些内部问题)。试试并报告:

UPDATE sample
  SET date =
    (SELECT TOP 1 b.date
     FROM sample AS b)
  FROM sample AS a
WHERE a.date IS NULL;

基本上,您是SELECTING表中的date字段,限制为 1行(因此仅限第一行)并使用该值更新剩余的date值为NULL

的行

修改

刚看到OP更新了他的问题。我的代码段建议将失败。因为它会在第一次出现日期时更新所有行。但OP在日期栏中可能有多个日期。