Sql超过2是注意null

时间:2014-11-06 12:13:10

标签: python sql web2py

我有一些表格,如:colum_1, colum_2, colum_3...

我需要从此表中选择只有2个或更多colum_非空的行

2 个答案:

答案 0 :(得分:2)

您可以使用where子句执行此操作,但它有点复杂:

where ((case when column_1 is not null then 1 else 0 end) +
       (case when column_2 is not null then 1 else 0 end) +
       . . .
       (case when column_n is not null then 1 else 0 end)
      ) >= 2

答案 1 :(得分:0)

假设您正在使用web2py数据库抽象层:

template = '(case when %s is not null then 1 else 0 end)'
query = '(%s) > 2' % reduce(lambda a, b: '%s + %s' % (a, b),
                            [template % f for f in db.mytable])
rows = db(query).select(db.mytable.ALL)