2016-07-06 4 views
1

enter image description here Ich habe eine Tabelle wie oben. Ich möchte einen bestimmten Wert einfügen, der I1, I2, I3, ..., I10 genannt wird. für den ersten Nicht-Null-Wert. Aber der Wert, den ich einfügen möchte, hängt davon ab, wie lange der erste Nicht-Null-Wert liegt.Kann ich einen bestimmten Wert einfügen, um den ersten Nicht-NULL-Wert in jeder Zeile zu ersetzen

Zum Beispiel ist der erste Nicht-NULL-Wert für ID1 Dauer 3, dann möchte ich "I3" in diese bestimmte Zelle einfügen. Für ID 2 würde ich I2 in diese Zelle einfügen wollen, usw.

Es ergeben würde ich aussehen erwarten wie enter image description here

I1, I2, I3, ..., I10 sind einige Industriewert I zur Hand haben, sie sind Zahlen nicht Zeichen.

Gibt es eine Möglichkeit, das zu tun? Vielen Dank.

+0

bitte hinzufügen, werden einige DDL oder Text, Bilder in einigen Bereichen blockiert – TheGameiswar

Antwort

1

Sie können es mit einer einfachen UPDATE mit CASE Ausdrücke:

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 
Verwandte Themen