you*_*gul 2 sql sql-server dynamic inner-join
我想要动态内连接表,这是我的 SQL 查询
Update temp
Set temp.Order_Id = parent.ID
from #TempTransactions AS temp
Inner Join (case when temp.OrderType = 1 then preorders else orders end) AS parent
ON parent.Cloud_Id = temp.Order_Id
Run Code Online (Sandbox Code Playgroud)
我是否可以通过上述方式或任何其他替代方式来决定?
如果是,怎么办?
两个左连接就可以了。
Update temp Set temp.Order_Id = COALESCE(p.ID, o.ID)
from #TempTransactions AS temp
LEFT Join preorders p ON p.Cloud_Id = temp.Order_Id AND temp.OrderType=1
LEFT JOIN orders o ON o.Cloud_Id = temp.Order_Id AND (temp.OrderType <> 1 OR temp.OrderType IS NULL)
WHERE COALESCE(p.ID, o.ID) IS NOT NULL
Run Code Online (Sandbox Code Playgroud)