表A里有一个10位的varchar2字段ZSSCD
现在从输入的是三个参数,IN1(3位),IN2(3位),IN3(4位)
原来都是每个参数只有一种输入可能,所以查询的时候直接用:
where ZSSCD like IN1 || IN2 || IN3 || '%'但现在IN1,IN2,IN3都有可能有多个输入值,例如,IN1 = {'001','002'..},IN2 = {'001','002'..}
,IN3 = {'0001','0002'..},且可能输入值的个数不定。请教高人如何写这个where条件。
现在从输入的是三个参数,IN1(3位),IN2(3位),IN3(4位)
原来都是每个参数只有一种输入可能,所以查询的时候直接用:
where ZSSCD like IN1 || IN2 || IN3 || '%'但现在IN1,IN2,IN3都有可能有多个输入值,例如,IN1 = {'001','002'..},IN2 = {'001','002'..}
,IN3 = {'0001','0002'..},且可能输入值的个数不定。请教高人如何写这个where条件。
可以考虑用游标得到输入的in1,in2,in3,再组合查询
and charindex(IN3,substr(ZSSCD,7,4)) > 0
但楼主的意思是说输入的值,例如in1,同时输入1个以上值的话,你这样就不可行了吧
or instr(IN3,substr(ZSSCD,7,4)) > 0 根据楼主的要求应该用OR