sql - 查询以组合两列如果它们不同,否则只返回一列的结果
问题描述
我正在使用 Oracle SQL Developer 并且有两列我想合并为一列,但前提是每列中的数据不同。
因此,例如,如果两列中都包含“London”一词,则连接的列将仅显示 London。但是,如果一列有“伦敦”而另一列有“英格兰”,那么合并后的列将显示“伦敦”;英国'
那可能吗?
我得到了这个代码
select shipto_addr1 || ', ' || shipto_city from pp_finance_bank
连接本网站上几个有帮助的用户的两列,但建议将上面的问题作为单独的问题发布。
如果您想让我进一步澄清这个问题,请告诉我,
谢谢
解决方案
使用CASE
:
select case when shipto_addr1 = shipto_city then shipto_addr1
else shipto_addr1 ||', '|| shipto_city
end address
from pp_finance_bank
作为您作为评论发布的查询:未汇总的所有内容都应成为该GROUP BY
子句的一部分。所以:
SELECT homogenized_company,
contract_no,
CASE
WHEN shipto_addr1 = shipto_city THEN shipto_addr1
ELSE shipto_addr1 || ', ' || shipto_city
END
address,
distributor,
software_vendor,
SUM (new_annual) acv
FROM pp_finance_bank
WHERE contract_no IN ('Z0101-S-00003687')
GROUP BY homogenized_company,
contract_no,
CASE
WHEN shipto_addr1 = shipto_city THEN shipto_addr1
ELSE shipto_addr1 || ', ' || shipto_city
END,
distributor,
software_vendor;
推荐阅读
- c# - 如何让 Web 应用程序从不同的服务器提供静态文件
- php - 向 QueryBuilder 添加自定义字段时,有什么方法可以防止 Doctrine 结果嵌套实体?
- python - 如何在 Keras 中保留训练期间保存的模型列表(仅保存最佳)?
- django - Django模型中IntegerField的顺序编号
- matlab - 在 MATLAB 中生成异方差级数?
- python-3.x - 卷积神经网络的输入和输出是一个 3D 矩阵
- git - TFS 2018 将构建任务设置为仅获取存储库的子文件夹
- django - Django 模型将字段与字段进行比较
- ruby-on-rails - 如何打印包含正则表达式模式的每一行并按字母顺序排序?
- c++ - SDL 图像:无法打开图像