Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Alle SQL-NULL-Werte in mehreren Spalten mit der WHERE-Klausel auf Spaltenebene aktualisieren?

Dazu gibt es keine Konvention – wenn Sie nur Datensätze verarbeiten möchten, bei denen die entsprechenden Spalten NULL sind, müssen Sie Folgendes verwenden:

WHERE Answer_1 IS NULL 
   OR Answer_2 IS NULL 
   OR ...

Aber Sie könnten dies in der UPDATE-Anweisung verwenden:

UPDATE YOUR_TABLE
   SET col1 = COALESCE(col1, 99),
       col2 = COALESCE(col2, 99),
       col3 = ...

Die Logik ist, dass der Wert nur dann auf 99 aktualisiert wird, wenn der Spaltenwert NULL ist, aufgrund der Funktionsweise von COALESCE – Rückgabe des ersten Nicht-NULL-Werts (Verarbeitung der bereitgestellten Liste von links nach rechts).