2016-07-06 52 views
1

enter image description here 我有一張如上所述的表格。 我想插入一個特定的值,稱爲I1,I2,I3,...,I10。爲第一個非空值。但是,我想要插入的值取決於第一個非Null值所處的持續時間。我可以插入一個特殊值來替換每行中的第一個非空值:

例如,ID1的第一個非NULL值是Duration 3,那麼我想在該特定的單元格中插入「I3」。對於ID 2,我想將I2插入該單元格等。

有結果,我希望看起來像 enter image description here

I1,I2,I3,...,I10是一些工業價值我手頭,他們是數字而不是字符。

有沒有辦法做到這一點?謝謝。

+0

請添加一些DDL或文字,圖片被阻擋在某些領域 – TheGameiswar

回答

1

你可以用一個簡單的UPDATE使用CASE表達式做到這一點:

UPDATE mytable 
SET 
    Duration1 = CASE WHEN Duration1 IS NOT NULL THEN I1 ELSE Duration1 END 
, Duration2 = CASE WHEN Duration1 IS NULL AND Duration2 IS NOT NULL THEN I2 ELSE Duration2 END 
, Duration3 = CASE WHEN Duration1 IS NULL AND Duration2 IS NULL AND Duration3 IS NOT NULL THEN I3 ELSE Duration3 END 
-- Continue in the same boring way 
, Duration10 = CASE WHEN Duration1 IS NULL AND Duration2 IS NULL AND Duration3 IS NULL AND Duration4 IS NULL AND Duration5 IS NULL AND Duration6 IS NULL AND Duration7 IS NULL AND Duration8 IS NULL AND Duration9 IS NULL AND Duration10 IS NOT NULL THEN I10 ELSE Duration10 END 
相關問題