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
)
posted @   Schieber  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有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复选框全选、全不选、反选等功能
点击右上角即可分享
微信分享提示
主题色彩