MSSQLからPostgreSQLへのOUTERAPPLYの同等の使用法に関する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 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;
ただし、相関サブクエリを使用するだけで、どちらのデータベースにもかなり近づくことができます。
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;
また、両方のデータベースで、ORDER BY
のない1つの行をフェッチすることは疑わしいことに注意してください。