sql - Oracle SQL - 基于 concat 的外连接
问题描述
我需要交叉连接两个表,但连接条件是:
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;
我想将列 To_Number(Concat(Location, Channel_Id)) 与 ItemLoc.Loc 外连接到放置(+)符号的位置
解决方案
首先,使用显式连接语法——旧(+)
的很难阅读并且容易出错。其次,使用||
运算符而不是CONCAT
函数——同样,更易于阅读。所以我们最终得到
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
推荐阅读
- ruby-on-rails - 使用 webpack 从 react-rails 应用程序中的 node_modules 加载字体
- reactjs - ReactJS:调用状态获取括号数组内的数据
- python - 在 Windows 即服务上运行的无限循环 Python 脚本的最佳实践
- java - 工具栏中从左到右对齐
- jquery - 通过用户控件的按钮单击事件更新面板刷新
- android - android中的多选下拉菜单
- ruby-on-rails - 在本地运行 ruby on rails 应用程序 - 不同版本的 ruby
- microsoft-graph-api - 对计划任务的 microsoft graph api 的修补请求未在响应中返回更新的任务
- android - Android应用主题错误:style Optional.of(AAPT)
- python - 使用python处理查询字符串中的撇号