如何将此相关子查询转换为Vertica友好非相关查询

时间:2017-12-07 19:24:27

标签: vertica

我有下面的SQL Server查询,需要将其转换为Vertica查询。 现在的问题是vertica不支持多级相关子查询,所以在我的例子中#include <string> //string::pop_back & string::empty if (!st.empty()) st.pop_back(); 不起作用

t3.a = t1.a

有人可以帮我这么做吗?

1 个答案:

答案 0 :(得分:1)

Vertica不支持超过1级的相关子查询,您应该将它们转换为JOIN。

它也不支持TOP x子句,而是使用LIMIT x。

这样的事情:

SELECT t1.*
FROM t1
LEFT JOIN t2 ON t1.y = t2.y
WHERE t2.y IS NULL
  AND t2.x IN
    (SELECT t3.x
     FROM t3
     JOIN t2 ON t3.z = t2.z
     JOIN t1 ON t3.a=t1.a
     ORDER BY t3.b LIMIT 1);