我有一张看起来像这样的表:
id | firstperson | secondperson
1 | jane doe |
2 | bob smith | margie smith
3 | master shifu | madame shifu
4 | max maxwell |
如果secondpersons字段不是空白的话,我正在尝试计算所有第一人称+所有第二人员......有没有办法做到这一点?
答案 0 :(得分:5)
SELECT SUM(CASE WHEN secondperson='' THEN 1 ELSE 2 END) FROM thetable;
答案 1 :(得分:2)
select sum(1 + case when secondperson <> '' then 1 else 0 end)
from MyTable
答案 2 :(得分:0)
我不确定这是否适用于Postgres,但在大多数数据库中,如果我们认为可能存在NULLS且问题确实是“如果secondperson字段不为NULL”,那么您必须明确包含NULLS在条件而不是空白值。
答案 3 :(得分:0)
SELECT SUM(在第二人=''或第二人为空,其余为0结束时为第二人的情况)从表格开始;
答案 4 :(得分:0)
假设空白表示NULL,那么在postgres中,就像在其他系统中一样,count(字段)将计算字段 如果它不为空
SELECT count(*)+count(secondperson) FROM thetable;
会给出想要的结果。 (SQL语法比缺少数据的自定义值更好。而且,关于主题,名称中包含数字的任何字段都是设计修订的候选者)