在一个遗留的项目中,遇到一个棘手的问题,例如:表一 Book,里面有字段id,bookno,按常理来说里面存放的应该是一个bookno,但是现在有的数据里面存放了多个bookno,中间用空格隔开,bookno是按照一定格式来输入的!表二 tpi,里面有id,tpino,tpidesc。tpi表里面的tpino只有一个,且都是跟bookno里面的其中一个相对应的,通过什么方法让两张表关联起来得到对应的tpidesc???(备注:就是bookno字段里面有的数据是多个bookno,有的是一个,一个的都能顺利弄出来,多个bookno的就不好弄了)
------解决方案--------------------
分隔bookno:
- SQL code
select id, regexp_substr(bookno, '[^ ]+', 1, level) from Bookconnect by level < length(regexp_replace(bookno, '[^ ]+')) + 1
------解决方案--------------------
请参考:
- SQL code
select * from book t1inner join tpi t2on t2.tpino like '%' || t1.bookno || '%'or t1.bookno like '%' || t2.tpino || '%'
------解决方案--------------------