最近在运行一个大sql时遇到了以下报错
[XX000] ERROR: could not pull up equivalence class using projected target list (pathkeys.c:1330)
网上没找到对这个错误的处理方法,经过多次实验之后。重要找到了解决问题的方法
报错出现的场景
我首先写了一个 union的查询,然后将这个查询作为一个子查询在外面嵌套了一层。但是单独运行union时,不会出现这个错误
找寻问题原因
经过多次反复试验后,发现是某个字段出现了问题。
但是我在子查询(union)中已经使用pgsql的 :: 方式强转了字符类型
解决方案
经过试验后,是一个字符型字段出现了问题。我在union之前的子查询中,使用了一个 trim() 函数对这个字段进行处理。结果竟然跑通了
所以trim() 、或者类似的函数应该可以解决这个问题。欢迎各位大佬留言,一起探究一下