2015-03-10 4 views
0

Я хочу прокручивать каждый столбец и увеличивать счетчик, если значение не равно NULL для любого столбца. Так что, если есть три столбца из 7 строк со значениями, не равными нулю, значение счетчика должно быть равно 3.Петля через столбцы PSQL

+0

Добро пожаловать в StackOverflow! Пожалуйста, прочитайте http://stackoverflow.com/help/how-to-ask –

ответ

0

Петли медленные, если вы можете их избежать. Если вы знаете имена столбцов, вы можете сделать что-то вроде этого:

UPDATE table SET counter = 
    CASE WHEN colA IS NULL THEN 0 ELSE 1 END + 
    CASE WHEN colB IS NULL THEN 0 ELSE 1 END + 
    CASE WHEN colC IS NULL THEN 0 ELSE 1 END + 
    CASE WHEN colD IS NULL THEN 0 ELSE 1 END + 
    CASE WHEN colE IS NULL THEN 0 ELSE 1 END + 
    CASE WHEN colG IS NULL THEN 0 ELSE 1 END + 
    CASE WHEN colF IS NULL THEN 0 ELSE 1 END; 
+0

Спасибо @MattyB! Он отлично работает! – user4655509

+0

Great @ user4655509! Пожалуйста, примите ответ, если вы сочтете это полезным! – MattyB