sql - 在 SQL 中查找字符串中的唯一尾随字符
问题描述
我在表中有一个列Job_Name
。该列具有值AC_ACCOUNT、MK_SALES等。我想在Job_Name
列中的字符“_”之后打印 DISTINCT 尾随字符。
能够在“_”之后打印字符,但不能使用单个查询打印 UNIQUE 字符
试过:
select substr('ACCOUNT', 5, 1) from dual
union
select substr('ACCOUNT', 6, 1) from dual
union
select substr('ACCOUNT', 4, 1) from dual
依此类推,但这将返回我必须再次连接的字符并记住我必须在列中概括这一点,这个查询是不可行的。
我希望字段值AC_ACCOUNT的输出是ACOUNT。
解决方案
如果表很大,可能会执行更好的选项(比正则表达式选项)使用SUBSTR + INSTR
组合,例如(感谢@Gary 的测试用例)
SQL> with tbl(job_name) as (
2 select 'AC_ACCOUNT' from dual union all
3 select 'MK_SALES' from dual union all
4 select 'A_SALES' from dual union all
5 select NULL from dual union all
6 select 'ABC123_big_account_name' from dual
7 )
8 select distinct substr(job_name, instr(job_name, '_') + 1) str
9 from tbl;
STR
----------------------------------------------------------------------
ACCOUNT
big_account_name
SALES
SQL>
推荐阅读
- flutter - gradle / wrapper:utime不可能:运行“颤振医生”后不允许操作
- python - 收集用户输入,然后以格式化字符串将其打印到屏幕上
- c# - .net core 5 中的函数参数可以是异步的吗?
- c# - 访问 ServiceLifetime.Scoped DbContext 时出现错误“在前一个操作完成之前在此上下文上启动了第二个操作”
- r - 将年度数据转换为 xts 格式
- java - DbFit:无法完成测试:java.net.SocketException:对等方重置连接:套接字写入错误
- json - 从 json 流中读取地图
- reactjs - 如何在箭头函数中使用反应钩子?
- python - 使用 Python 使用 Selenium 在网页中查找文本
- ionic-framework - 如何制作具有两种不同功能的离子标签