选择INTO TABLE COUNT

时间:2018-03-12 16:17:59

标签: sql postgresql function

EXECUTE format('Select Into taskgroup_cnt count(x.*)
        From %I.op_user_event_data a
        CROSS JOIN LATERAL
        json_array_elements((data->''taskGroups'')::json) As x
        Where a.event_id=' || cur_event_id, cur_instance);

在一个函数中抛出:

  

错误:“count”或附近的语法错误

     

第1行:选择进入taskgroup_cnt count(x。*)

我在这里做错了什么?

编辑:

我设法让它工作,我的问题是我有一个动态查询,并且无法写入变量。这个approuch解决了这个问题:

EXECUTE 'SELECT count(x.*) From '|| cur_instance ||'.op_user_event_data a 
        CROSS JOIN LATERAL
        json_array_elements((data->''taskGroups'')::json) As x
        WHERE a.event_id=' || cur_event_id
        INTO taskgroup_cnt;

全部恢复语法。

1 个答案:

答案 0 :(得分:0)

EXECUTE 'SELECT count(x.*) From '|| cur_instance ||'.op_user_event_data a 
        CROSS JOIN LATERAL
        json_array_elements((data->''taskGroups'')::json) As x
        WHERE a.event_id=' || cur_event_id
        INTO taskgroup_cnt;