我有一张像这样的巨型桌子:
Date Price1 Price2
1 13 14.9
2 13.1 NULL
3 NULL 14
4 NULL 14.5
5 13 14
我想填写NA,以便SQL中的表格如下所示:
Date Price1 Price2
1 13 14.9
2 13.1 14.9
3 13.1 14
4 13.1 14.5
5 13 14
我对SQL很陌生,所以请原谅。我在这里搜索过,看起来你可以在R中做到这一点,但我该怎么做呢。
我正在使用Microsoft SQL Server Management。此外,我似乎无法想象如何正确插入一个表,他们不会让我发布图片。所以,抱歉格式化。
答案 0 :(得分:1)
试试这个:
UPDATE a
SET a.Price1 = b.Price1
FROM <YOUR-TABLE> a CROSS APPLY
(
SELECT TOP 1 Price1
FROM <YOUR-TABLE> b
WHERE a.Date > b.Date
AND Price1 <> 'NA'
ORDER BY b.Date DESC
) b
UPDATE a
SET a.Price2 = b.Price2
FROM <YOUR-TABLE> a CROSS APPLY
(
SELECT TOP 1 Price2
FROM <YOUR-TABLE> b
WHERE a.Date > b.Date
AND Price2 <> 'NA'
ORDER BY b.Date DESC
) b