如下解析,怎样才能与问题解析一条sql语句结合起来使用?

问题语句:
select SUBJECTCODE,subjectname,supercode from BO_CW_SUBJECT where supercode in (select SUBJECTCODE  from BO_FLOW_SUBJECT_S where FLOWINSTANCEID=28273)
解析:
(select SUBJECTCODE  from BO_FLOW_SUBJECT_S where FLOWINSTANCEID=28273) 此语句的结果集为 31,32,怎样才能与上面一条sql语句结合起来使用呢
谢谢!


不负相思意
浏览 128回答 2
2回答

慕村9548890

Sql代码  SELECT    t1.SUBJECTCODE,    t1.subjectname,    t1supercode  FROM    BO_CW_SUBJECT t1,    BO_FLOW_SUBJECT_S t2  WHERE    t2.FLOWINSTANCEID=28273  AND regexp_like(t2.SUBJECTCODE, '(^|,)' || t1.supercode || '(,|$)')  未测试这种做法会有效率问题的。一定是全表走查的。

有只小跳蛙

1分两条sql可能更快1、取(select SUBJECTCODE  from BO_FLOW_SUBJECT_S where FLOWINSTANCEID=28273)  然后程序中split2、再in查一次 效率高select SUBJECTCODE,subjectname,supercode from BO_CW_SUBJECT where supercode in(?,?)2、like 缺点不走索引where concat(supercode, ',' , '%') like (子查询) or concat(',', supercode, '%')  like  (子查询)既因为你的格式是 1,2,3 所以两种情况  1,  ,3  如果你存储的格式是1,2,3, 则可以直接1,   2,   3, 匹配
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Oracle