我有下面的SQL Server查询,需要将其转换为Vertica查询。
现在的问题是vertica不支持多级相关子查询,所以在我的例子中#include <string> //string::pop_back & string::empty
if (!st.empty())
st.pop_back();
不起作用
t3.a = t1.a
有人可以帮我这么做吗?
答案 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);