如何实现获取整行的PostgreSQL函数?

时间:2017-05-05 12:01:59

标签: postgresql plpython

例如,我想为表中的每一行计算空字段。

我应该使用什么参数类型声明?

我尝试了复合类型(表名作为类型):

CREATE FUNCTION count_null (row my_table)
  RETURNS INTEGER
AS $$
  return len([x for x in row if x is None])
$$ LANGUAGE plpythonu;

但如果我把它称为:

,它与参数类型不匹配
SELECT count_null(*) FROM my_table;

1 个答案:

答案 0 :(得分:1)

假设您正在使用Postgres> = 9.3,您可以使用json转换完成此操作,如下所示:

$("your element").attr("attrname","your value")

这具有使用语言SQL而不是plpythonu的额外好处,因此查询规划器可以在一定程度上优化它。