如何给DB2数据库的存储过程中 where 的in 条件传参数?

存储过程中有一条select语句,wherefield1in('001','002')。in后面括号里面是由参数传入的,且个数是不确定的。现在遇到一个问题,假如我的参数值... 存储过程中有一条select语句,where field1 in ('001','002')。in后面括号里面是由参数传入的,且个数是不确定的。现在遇到一个问题,假如我的参数值等于“'001','002'”,简单的用逗号隔开传递到数据库数据库会认为是一个值而查询不到无法完成功能,请问有什么办法可以解决? 展开
 我来答
孤传诗宁买野必2b
2013-05-06 · TA获得超过2815个赞
知道小有建树答主
回答量:4289
采纳率:8%
帮助的人:885万
展开全部
WITH RETURN TO CALLER DECLARE CHOICE2光标 - 声明游标Choice2
SELECT CompanyID,DEPTID,SEQ ID SUBMITTIME,
B.GRADEDESC HYEAR,产品编号,产品代码PRODUCTDESC

A.GRADEID,价格,SFZDPY,的LQUANT,MQUANT,MCQUANT,LCQUANT,

UQUANT OTHQUANT1 OTHQUANT2 OTHQUANT3 OTHQUANT4,EMP1 EMP2状态,A.REMARK:

十进制(ABS(MCQUANT,
NULLIF(MQUANT,0)* 100,10,2)标签/>从T_SUPPLY_PPB_HYà

LEFT JOIN B开A.GRADEID的T_SUPPLY_GRADATION的B.GRADEID

,WHERE HYEAR = TO_CHAR(P_NF )| | P_BN

订单由B.GRADEID PRODUCTCODE,A.PRICE;

- 1.DECIMAL(P,S)十进制数,小数点位置精度(P)和确定的小数位数(S)。 /> - 精度的号码的数字之和的总数必须小于32。小数位的数字位数的小数部分总是小于或等于精度。

- 如果你不指定精度和小数位数,默认精度的十进制值是5,和默认的小数位数为0。

- 2语法:NULLIF(表达式,表达式)

- 表达式:(常量,列名,函数,子查询或算术运算符,任何按位运算符和字符串运算组)
- 如果两个表达式不相等,NULLIF返回第一个表达式的值。如果他们是平等的,NULLIF返回第一个表达式类型的空值。如果两个表达式都是平等的,表达式的结果是NULL,NULLIF相当于CASE的搜索功能。
du瓶邪
2015-08-10 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2969万
展开全部
需要用到如下方法:
<selectid="selectProductList"parameterClass="list"resultClass="ProductBean">
SELECT * FROM product WHERE pname in <iterateopen="("close=")"conjunction=",">#[]#</iterate> </select>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-05-02
展开全部
这种情况只能在过程中使用动态SQL来实现。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式