sql - 重复的 oacle sql 值
问题描述
我有一个具有不同值的 ENTITY 字段,如下所示:
Orange/OBS/SCE/CSO/ESC/STI/CSE/TE
Orange/ODT/GSE
Orange/FGI
Orange/DSE/FGE/CSO/
如果我们举第一个例子:
Orange OBS/SCE/CSO/ESC/STI/CSE/TE
我想最终得到这个结果:
ORANGE
ORANGE/OBS
ORANGE/OBS/SCE
ORANGE/OBS/SCE/CSO
ORANGE/OBS/SCE/CSO/ESC/STI
Orange/OBS/SCE/CSO/ESC/STI/CSE
Orange/OBS/SCE/CSO/ESC/STI/CSE/TE
我编写了以下 SQL 查询,但我得到了更多重复项,而不是只有一个值:
select
substr( 'Orange/OBS/SCE/CSO/ESC/STI/CSE/TE', 1 ,
INSTR( 'Orange/OBS/SCE/CSO/ESC/STI/CSE/TE', '/' , -level)) AS DECOMPOSITION_ENTITY
from (select distinct 'Orange/OBS/SCE/CSO/ESC/STI/CSE/TE' from dual )
connect by INSTR( 'Orange/OBS/SCE/CSO/ESC/STI/CSE/TE', '/', -level ) >0
我得到以下结果:
DECOMPOSITION_ENTITY
Orange/OBS/SCE/CSO/ESC/STI/CSE/
Orange/OBS/SCE/CSO/ESC/STI/CSE/
Orange/OBS/SCE/CSO/ESC/STI/CSE/
Orange/OBS/SCE/CSO/ESC/STI/
Orange/OBS/SCE/CSO/ESC/STI/
Orange/OBS/SCE/CSO/ESC/STI/
Orange/OBS/SCE/CSO/ESC/STI/
Orange/OBS/SCE/CSO/ESC/
Orange/OBS/SCE/CSO/ESC/
Orange/OBS/SCE/CSO/ESC/
Orange/OBS/SCE/CSO/ESC/
Orange/OBS/SCE/CSO/
Orange/OBS/SCE/CSO/
Orange/OBS/SCE/CSO/
Orange/OBS/SCE/CSO/
Orange/OBS/SCE/
Orange/OBS/SCE/
Orange/OBS/SCE/
Orange/OBS/SCE/
Orange/OBS/
Orange/OBS/
Orange/OBS/
Orange/OBS/
Orange/
Orange/
Orange/
Orange/
Orange /
应该只出现一次,相同的,Orange / OB
依此类推,每个结果我应该只有一次值。
突然间我没有阻止,因为我不知道我的请求有什么问题。
预先感谢您的帮助 :)
解决方案
您可以使用以下查询:
select DECOMPOSITION_ENTITY
from (select INSTR( x, '/', -level ) inst, substr(x,-level,1) ch,
substr( x,1, INSTR( x, '/' , -level)) AS DECOMPOSITION_ENTITY ,level
from (select 'Orange/OBS/SCE/CSO/ESC/STI/CSE/TE' x from dual )
connect by INSTR( x,'/', -level ) >0
) where ch='/'
/
结果是
DECOMPOSITION_ENTITY
--------------------------------------------------
Orange/OBS/SCE/CSO/ESC/STI/CSE/
Orange/OBS/SCE/CSO/ESC/STI/
Orange/OBS/SCE/CSO/ESC/
Orange/OBS/SCE/CSO/
Orange/OBS/SCE/
Orange/OBS/
Orange/
要查看为什么会得到显示的结果,请从上面显示的查询中运行内部查询。您会看到您的 substr 没问题,但它为所有级别的值提供相同的结果,而您只需要我使用的 'ch' 列必须是 '/' 的情况。
推荐阅读
- c++ - 从同一个文件读取和写入?
- json - 无法通过 python3 从 AWS Secrets Manager 正确访问 GPG 公钥/私钥
- javascript - [vue]:如何在 Vue 中的同一元素上使用 css 模块和普通类 css 添加动态类?
- ldap - LDAP 查询,两组,一组包含用户,另一组包含用户组
- android - AsyncTask Android 获取新数据
- tableau-api - 如何在 Tableau Server 客户端中根据站点 ID 打印项目和工作簿名称
- c# - ASP.NET MVC C# 多个 URL 路由配置控制器操作
- java - 替换显示为编码的特殊字符
- mariadb - 使用相同的数据和选择语句时,ignite 比 mariadb 慢吗?
- azure - Azure Webapp 请求在 4 分钟后返回 502