如果任何列的值都不为NULL,我想遍历每一列并递增计数器。因此,如果连续7个中有三列,其值不为null,则计数器值应为3.
答案 0 :(得分: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;