I need to cross join two tables but the joining conditions are:
x
Select FutureInventory.Item,
To_Number(Concat(Location, Channel_Id)) Location,
From V_CUST_FUTURE_INV_POSITION FutureInventory,
xx_Item_Loc_Info_V ItemLoc
Where FutureInventory.Item(+) = ItemLoc.Item
And To_Number(Concat(Location, Channel_Id))(+) = ItemLoc.Loc;
I want to outer join the column To_Number(Concat(Location, Channel_Id)) with ItemLoc.Loc where to put the (+) sign
Advertisement
Answer
First, use explicit join syntax – the old (+)
is hard to read and easy to get wrong. Second, use the ||
operator instead of the CONCAT
function – again, easier to read. So we end up with
Select FutureInventory.Item,
To_Number(Location || Channel_Id) Location,
From xx_Item_Loc_Info_V ItemLoc
LEFT OUTER JOIN V_CUST_FUTURE_INV_POSITION FutureInventory,
ON FutureInventory.Item = ItemLoc.Item And
To_Number(Location || Channel_Id) = ItemLoc.Loc