如果一个SQL语句中
select a,b,c from table_name where a in(2,3,4,5) ;
如果a是数值型,且2,3,4,5是变化的时候,可以用两种方法来解决这个问题:
第一种方法:如果2,3,4,5是固定的个数,比如有四个,可以定义四个变量,如果当其中只有两个变量的话,则把其余的两个变量设置为可能存在的值。
第二种方法:可以直接定义个字串,把2 3 4 5 赋值给它,比如说 str='2,3,4,5' 或者 str='2,3,5',然后在SQL语句中直接 in(:str)就可以了。系统会默认的把str当成三个数值或者四个数值来处理。
第三种方法:可以用instr来实现,instr('2,3,4,5',to_char(a))>0 其中 '2,3,4,5'同样是一个字符串变量。如string str str='2,3,4,5'。 即 instr(:str,to_char(a)).
OK!