如果查询出一个表中某一列不全为NULL值的记录

例如我现在有这样一个表:

x1 = 1 NULL 2 NULL NULL
x2 = 1 NULL NULL 3 4
x3 = 3 NULL 3 4 5
x4 = take(double(NULL), 5)
t = table(x1 ,x2 ,x3, x4)

想实现如下的操作,全为NULL的列过滤掉:

attachments-2021-07-vgqjwBsB60fe771c5fb24.png

请先 登录 后评论

1 个回答

Jason Tang - 时序数据库技术支持

可以使用sqlCol函数生成元代码的方法实现:

(1)生成去掉全为NULL的列的元代码

(2)执行元代码

示例代码如下:

sql(select=sqlCol(t.schema().colDefs.name[each(isValid, t.values()).sum()!=0]), from=t).eval()

结果如下:

attachments-2021-07-6LX4u1b360fe77e685d1a.png

请先 登录 后评论