存储过程select语句in条件中如何设变量
define ls_in varchar(255);let ls_in = "'a','b'";
select sum(amount) from tab1
where col1 in (ls_in);
这样写ls_in不行,请问该怎么写?我试了很多种方法都不可以。 语法层面的,是不可能的。
in ('a,b')
就是说有个完整的字串'a,b'来匹配。
而不是
in ('a', 'b')
你相当于改变了他的语法,这个是不可能实现的。
当然,这个是可以的
in (:var_a, :var_b) 这属于动态sql语句,在informix 11.5中才被支持
回复 #3 xxyyy 的帖子
SPL里也支持的.... 同意2 楼的。in ()里只用一个变量,不符合语法。
应该换一个思路 换了方法,把数值计算放到每一个循环里了。存储过程还不是一般难用
页:
[1]