【问题标题】:SELECT INTO TABLE COUNT选择表计数
【发布时间】:2018-03-12 16:17:59
【问题描述】:
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.*)

我在这里做错了什么?

编辑:

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

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;

全部恢复语法。

【问题讨论】:

  • 提示:select count(*) into taskgroup_cnt.
  • 这与我想要的相反...谢谢!
  • 如果@GordonLinoff 的提示与您想要的相反,那么您可能误解了语法。在这种情况下,您应该描述您的愿望,以便我们知道您想要什么。
  • 其实不是相反,我会根据@GordonLinoff 的anwser 来编辑我的anwser,这给了我一个线索。
  • 实际上将您的解决方案作为答案并将其设置为解决方案

标签: sql postgresql function


【解决方案1】:
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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 2014-02-23
    • 2018-12-01
    • 2012-01-13
    • 1970-01-01
    • 2012-03-05
    相关资源
    最近更新 更多