通过在内存中加入多个部分选择来克服postgres中的1664列列表限制?

时间:2017-06-19 08:11:06

标签: sql postgresql join

Postgres将SELECT语句中的列数限制为1664,否则" 目标列表最多可包含1664个条目"错误。

在我们的应用中,我们动态创建SELECT语句,并且可能会与超过此限制的列号进行连接。

我的想法是检查生成的SELECT语句中的列数,如果超过例如1000,将SELECT STATEMENT分成几个具有相同WHERE子句但要选择的不同列列表,然后加入内存中多个选择的结果,例如

  1. 选择前1000列
  2. 根据需要选择第二列1000列
  3. 但是为了加入部分结果集,每个都应包含一些唯一的行ID来启用连接。

    所以我们介绍了

    SELECT DENSE_RANK() AS ROW_NUM OVER (GROUP BY root.id), <1st 1000 column names> 
    FROM root 
      JOIN ..
    

    但由于某些连接表示一对多关系,并且单个根表项可能与多个子项相关,因此无法正常工作。

    是否可以解决这个问题?

0 个答案:

没有答案