我有一些表格,如:colum_1, colum_2, colum_3...
我需要从此表中选择只有2个或更多colum_
非空的行
答案 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)