sql - 是否可以使用当前行的非空单元格的数量来更新列?

标签 sql sqlite sql-update

是否可以使用当前行的非空单元格的数量来更新列?

在此示例中-在更新之后-“计数非空单元格”列中的值将为213(“ id”列除外)。

 id | x | y | z | count non-empty cells
----|---|---|---|----------------------
  1 | a | b |   |
----|---|---|---|----------------------
  2 | c |   |   |
----|---|---|---|----------------------
  3 | d | e | f |

最佳答案

您可以在此处尝试使用COALESCE

SELECT id, x, y, z,
    (CASE WHEN x IS NOT NULL THEN 1 ELSE 0 END +
     CASE WHEN y IS NOT NULL THEN 1 ELSE 0 END +
     CASE WHEN z IS NOT NULL THEN 1 ELSE 0 END) AS non_empty_count
FROM yourTable;

关于sql - 是否可以使用当前行的非空单元格的数量来更新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58405817/

相关文章:

ruby-on-rails - Rails 数据库,为什么在开发和生产中使用相同的 DBMS?

SQL:插入新记录或仅替换某些字段的查询

mysql - 如果 MySQL 中不存在,是否可以使用没有主键的 where-in 子句来更新或插入?

php - 在 SQL 中第 n 次执行后,ajax 返回成功

sql - 如何计算 postgresql 中 JSON 的 setof/键数?

sql - postgres大表选择优化

sql - 如何在某个值差距之前识别每组的行?

mysql - 在目录数据库中具有两个不同类别 ID 的产品 ID

c# - 在采样率为 48000 的 MP3 中获得采样率为 44100 的帧。Mp3FileReader 不支持采样率更改

PHP MySQL 不更新包含小数的值的字段