sql - 从oracle sql中的任何月份开始删除字符串
问题描述
我有以下需要修改的 Oracle sql 查询:
Select (SUBSTR(long_comp_name, 1, 23))
Kontrakt_Bezeichnung, long_comp_name
FROM TRT_AGG
where ROOT = 'SP';
查询结果如下:
Kontrakt_Bezeichnung long_comp_name
SP Plus Corp SP Plus Corp
SP Plus Corp SP Plus Corp
SP Plus Corp SP Plus Corp
SP Plus Corp SP Plus Corp
S&P 500 FUTR OPTN Jun20 S&P 500 FUTR OPTN Jun20P 4275
S&P 500 FUTR OPTN Jun20 S&P 500 FUTR OPTN Jun20P 4275
S&P 500 FUTR OPTN Jun20 S&P 500 FUTR OPTN Jun20P 4275
S&P 500 FUTR OPTN Jun20 S&P 500 FUTR OPTN Jun20C 4275
现在我想修改我的查询,以便它将从任何月份开始的字符串中删除值的另一部分。例如,在上面的示例中,它将从“Jun20”中删除这个完整的部分。对于其他值,它应该保持不变。
我希望得到如下结果:
Kontrakt_Bezeichnung
SP Plus Corp
SP Plus Corp
SP Plus Corp
SP Plus Corp
S&P 500 FUTR OPTN
S&P 500 FUTR OPTN
S&P 500 FUTR OPTN
S&P 500 FUTR OPTN
我在 Oracle 视图中使用此查询字段,因此无法在选择查询中使用 With Clause
解决方案
认为您正在寻找类似的东西:
with d as (
select 'SP Plus Corp OPTION' n1 from dual
union all select 'S+P 500 FUTR OPTN Jun20 OPTION' from dual)
select n1, regexp_replace(n1,'(Jan|Feb|Mar|Apr|May|Jun)[0-9]{2}.*','') from d
推荐阅读
- javascript - 使用纯javascript克隆html元素后如何取消选中单选按钮?
- python - Flask + Wsgi 返回 python shell 脚本输出
- python - 在给定值条件的情况下获取 np 外积因子的索引
- reactjs - 将 reducer 扩展到数据略有不同的不同页面
- google-play - Google Play - “问题:内容分级不正确”
- python - 如何修复“从应用程序收到的不完整响应”
- javascript - 如何将多个值推送到表单中?
- python-3.x - 使用python提取pdf表格中包含的文本的最佳方法是什么?
- git - 将单个跟踪文件添加到 .gitignore 而不删除它?
- office-js - Excel 上下文可以安全地传递给一个类吗?