我想找到一个将 MSSQL 的 OUTER APPLY 用法转换为 PostgreSQL 的 SQL 查询语句,但似乎很难找到。
我的 MSSQL 示例查询如下。
希望有人能帮我解决这个问题。谢谢提前。
SELECT table1.col1, table1.col2, Supp.ID, Supp.Supplier
FROM SIS_PRS table1
OUTER APPLY (SELECT TOP 1 ID, SupplierName FROM table2 WHERE table2.ID = table1.SupplierID) AS Supp
SELECT ID, SupplierName
,将(虚拟)表别名设置为Supp
,并使用Supp.ID,Supp.Supplier
选择了字段。这应该可以工作。但是在第二个例子中,您包含了相关子查询在SELECT
语句中(其结果将成为返回的字段之一),但您正在选择2个字段(SELECT ID,Name
),并将结果字段定义为SupplierName
。这会起作用吗(哪个字段将被返回)?我有什么遗漏的吗? - Lucas BasquerottoJOIN LATERAL
期望在表达式后面加上ON true
. - Alex Sham