我知道我可以通过使用COUNT(*)函数来获取特定列中具有特定值的行数,但是我想找到具有特定值的特定行中的列数。有关如何执行此操作的任何建议?
我会发布一个示例,说明到目前为止我已经尝试过的内容,但是我完全迷失了它。。。。。。。。。。。。。。。。。。。。。。。。。
编辑1-这是一些示例数据和预期结果:
桌子-运单| u1 | u1paid | u2 | u2paid | u3 | u3paid | u4 | u4paid | u5 | u5paid
所以我想做的是,当我使用Trackbill选择特定的行时,我想遍历其所有列,看看哪些列的值为’false’。因此,如果只有u1paid和u3paid是值为false的列,则返回的答案应为2。
我认为您的表结构如下:
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编写为:
uxpaid
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,无法为您提供帮助。