Oracle根据符号分隔字段内字符串后SQL查询数据方法
-- 从WITH函数子查询中获取需要的数据
SELECT COUNT(*) FROM CT_BC_BUSINESSCARDFLOW t1 WHERE t1.CFSerialNumber NOT IN (
-- 利用WITH函数实现子查询(当做内联视图或者临时表使用)
WITH t(sub, str) AS (
SELECT substr(CFBUSINESSCARDFLOW, 1, instr(CFBUSINESSCARDFLOW, ';') - 1), substr(concat(CFBUSINESSCARDFLOW,';'), instr(CFBUSINESSCARDFLOW, ';') + 1)
FROM T_BC_BIZACCOUNTBILLENTRY ENTRY
LEFT JOIN T_BC_BizAccountBill BILL ON ENTRY.FBILLID = BILL.FID
-- 单据分录商务卡流水信息不为空
WHERE ENTRY.CFBusinessCardFlow IS NOT NULL
-- 单据状态(不是暂存/废弃/取消)
AND BILL.FSTATE <> 20
AND BILL.FSTATE <> 27
AND BILL.FSTATE <> 50
-- 字段内根据特定符号分隔数据
UNION ALL
SELECT substr(str, 1, instr(str, ';') - 1), substr(str, instr(str, ';') + 1)
FROM t WHERE instr(str, ';') > 0
)
-- 从临时表t中查询数据
SELECT sub
FROM t
WHERE sub is not null
)
作者:Schieber
出处:https://www.cnblogs.com/xiqingbo/p/oracle-04.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2021-01-28 jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021-01-28 jQuery实现Checkbox复选框全选、全不选、反选等功能