遍历列 PSQL
Loop through columns PSQL
我想遍历每一列并在任何列的值不为 NULL 时递增计数器。因此,如果连续 7 列中有 3 列的值不为空,则计数器值应为 3。
如果可以避免,循环会很慢。如果你知道列的名称,你可以这样做:
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;
我想遍历每一列并在任何列的值不为 NULL 时递增计数器。因此,如果连续 7 列中有 3 列的值不为空,则计数器值应为 3。
如果可以避免,循环会很慢。如果你知道列的名称,你可以这样做:
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;