我会考虑你的表结构如下:
TABLE trackbill
(u1 NUMBER(10,2)
, u1paid VARCHAR(10) -- contains values 'Yes' or 'No'
, u2 NUMBER(10,2)
, u2paid VARCHAR(10) -- contains values 'Yes' or 'No'
, u3 NUMBER(10,2)
, u3paid VARCHAR(10) -- contains values 'Yes' or 'No'
, u4 NUMBER(10,2)
, u4paid VARCHAR(30) -- contains values 'Yes' or 'No'
, u5 NUMBER(10,2)
, u5paid VARCHAR(30) -- contains values 'Yes' or 'No'
)
因此,要检查是的多少”是对于uxpaid
列,我们可以编写SQL为:
SELECT u1, u1paid, u2, u2paid, u3, u3pai, u4, u4paid, u5, u5paid
, CASE u1paid WHEN 'Yes' THEN 1 ELSE 0 END
+ CASE u2paid WHEN 'Yes' THEN 1 ELSE 0 END
+ CASE u3paid WHEN 'Yes' THEN 1 ELSE 0 END
+ CASE u4paid WHEN 'Yes' THEN 1 ELSE 0 END
+ CASE u5paid WHEN 'Yes' THEN 1 ELSE 0 END
AS no_of_paid_columns
FROM trackbill
我无法帮助您使用SQLite,因为我不知道它。
你能张贴一些样本数据和期望的结果吗?看看你试过的东西也很有帮助。 – Taryn 2013-03-14 18:58:52
我试图执行COUNT(*),但我无法得到它来计算列数,当我在网上搜索的帮助,我发现,COUNT(*)可以用来仅计算行数,不列数。 – 2013-03-14 19:03:13