aya*_*nix 7 sql-server postgresql lateral-join
我试图找到一个关于从MSSQL到PostgreSQL的等效使用OUTER APPLY的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
Run Code Online (Sandbox Code Playgroud)
Gor*_*off 10
这是一个横向连接:
SELECT table1.col1, table1.col2, Supp.ID, Supp.Supplier
FROM SIS_PRS table1 LEFT JOIN LATERAL
(SELECT ID, SupplierName
FROM table2
WHERE table2.ID = table1.SupplierID
FETCH FIRST 1 ROW ONLY
) Supp
ON true;
Run Code Online (Sandbox Code Playgroud)
但是,只需一个相关的子查询,您就可以在任一数据库中非常接近:
SELECT table1.col1, table1.col2, table1.SupplierID,
(SELECT Name
FROM table2
WHERE table2.ID = table1.SupplierID
FETCH FIRST 1 ROW ONLY
) as SupplierName
FROM SIS_PRS table1;
Run Code Online (Sandbox Code Playgroud)
另请注意,在两个数据库中,获取一行不带ORDER BY
是可疑的.
归档时间: |
|
查看次数: |
4601 次 |
最近记录: |