Postgres将SELECT
语句中的列数限制为1664,否则" 目标列表最多可包含1664个条目"错误。
在我们的应用中,我们动态创建SELECT
语句,并且可能会与超过此限制的列号进行连接。
我的想法是检查生成的SELECT
语句中的列数,如果超过例如1000,将SELECT
STATEMENT分成几个具有相同WHERE
子句但要选择的不同列列表,然后加入内存中多个选择的结果,例如
但是为了加入部分结果集,每个都应包含一些唯一的行ID来启用连接。
所以我们介绍了
SELECT DENSE_RANK() AS ROW_NUM OVER (GROUP BY root.id), <1st 1000 column names>
FROM root
JOIN ..
但由于某些连接表示一对多关系,并且单个根表项可能与多个子项相关,因此无法正常工作。
是否可以解决这个问题?