PLSQL开发实现字符串拆分
在应用程序开发中,会出现单选或多选框条件输入的需求。如输入框的输入值为'sz',或'sz|nj|zj|nt',在SQL中会这样处理。
select * from tab_1 where col_1='sz' ;这是单选框输入。
select * from tab_1 where col_1 ='sz|nj' ;这是多选框输入。
很明显,多选输入值不会查询出结果。
?
如何解决这个问题?
?
有使用动态SQL实现的方法,如拼装成这样的SQL语句:select * from tab_1 where col_1 in ('sz','nj') ;
?
还有将'sz|nj'拆分插入到临时表中,再关联该临时表实现,如select * from tab_1 where col_1 in (select a from tt);
?
临时表涉及到表的创建和维护,还有IO。
?
(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1681631)
?
我最近想到一个方法:将传入的字符串以嵌套表类型返回,使用表函数调用,实现这类需求。
?
函数代码如下:
学习了。