2017-10-05 5 views
0

次の使用可能な値からNULL列の値を取得したかったのです。SQL:空のセルを次に使用可能な値で埋める方法は?

enter image description here

私はこのコードを試してみましたが、私はあなたのデータは、商品コードごとに1つだけの値を持つ

DROP TABLE #X 
CREATE TABLE #X 
(
    ID INT IDENTITY PRIMARY KEY 
    ,v INT 
); 

INSERT INTO #X 
SELECT 121 UNION ALL SELECT NULL UNION ALL SELECT NULL 
UNION ALL SELECT 312 UNION ALL SELECT NULL UNION ALL SELECT NULL UNION ALL SELECT NULL 
UNION ALL SELECT 123 UNION ALL SELECT NULL UNION ALL SELECT NULL 
UNION ALL SELECT 415 UNION ALL SELECT NULL UNION ALL SELECT NULL UNION ALL SELECT NULL UNION ALL SELECT NULL 
UNION ALL SELECT 200; 

SELECT * FROM #X; 

DECLARE @v INT; 

UPDATE #x WITH(TABLOCKX) 
SET @v = v = CASE WHEN v IS NULL THEN @v ELSE v END 
OPTION(MAXDOP 0); 

SELECT * FROM #x; 

答えて

0

前の値を得ました。それは一般的にあなたのデータの真である場合は、単に行うことができます。

select t.*, max(amount) over (partition by item_code) 
from t; 

あなたは量を更新する場合:

with toupdate as (
     select t.*, max(amount) over (partition by item_code) as new_amount 
     from t 
    ) 
update toupdate 
    set amount = new_amount 
    where amount is null; 
+0

私は、ITEMと期間PKを持っています。 – Jeffren

関連する問題