关于SQL的Where子句中的In的问题。(急)

where(inv_typelike@inv_typeorinv_typein(@inv_type))andplant_nolike@plantnoandcustomer... where (inv_type like @inv_type
or inv_type in (@inv_type))
and plant_no like @plantno
and customer_cd like @customercd
and product_no like @productno

上述语句中,如果@inv_type='N'或'A',即单个字母时,
可查出结果;但如果@inv_type='N','A'时,就没有结果。
是不是in语句的问题,请高手指点。
执行储存过程

DECLARE @return_value int

EXEC @return_value = [dbo].[prodRealInv]
@plantno = N'F15',
@customercd = N'%',
@productno = N'%',
@inv_type = N'''N'',''A''',
@OutputPlant = 1,
@OutputInvType = 1,
@OutputWork_order_no = 1

SELECT 'Return Value' = @return_value

输出@inv_type,内容是
'N','A'

(1 行受影响)

@inv_type是储存过程的参数,在VB.NET中用变量传入值的。
我的VB.NET代码如下。
cmd.Parameters.Add(New SqlClient.SqlParameter("@inv_type", SqlDbType.VarChar, 50))
s = txtInvType.Text
If s.Substring(s.Length - 1, 1) = "," Then s = s.Substring(0, s.Length - 1)
If s.ToUpper = "L" Then
s = "%"
Else
s = "'" & s.Replace(",", "','") & "'"
End If
cmd.Parameters("@inv_type").Value = s

我的理解是不是这个情况下的字符串,IN语句则只把'N','A'作为一个值来看待,
如果是,SQL语句写起来就非常麻烦了。
展开
 我来答
仗剑折花
2011-09-01 · TA获得超过127个赞
知道小有建树答主
回答量:121
采纳率:0%
帮助的人:96万
展开全部
这样肯定不行
你的参数必须是一个集合,如 or inv_type in ('A','a')
当你的参数为@inv_type='N','A'时,你可以这样用动态SQL来解决
v_sql varchar2(400);
v_sql :='select * from tab where 条件1 or inv_type in ('||@inv_type||'))';
execute immediate v_sql;
追问
'||@inv_type||' 中的||是什么意思?
追答
字符拼接符,这是oracle中的用法,不知道你是什么数据库
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
StevenWong_BD
2011-09-01 · TA获得超过550个赞
知道小有建树答主
回答量:1587
采纳率:0%
帮助的人:1358万
展开全部
inv_type in ('N','A')才是你需要的效果
而你@inv_type=‘N,A’到sql里变成inv_type in ('N,A')你觉得能查出结果么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangdw86
2011-09-01 · TA获得超过149个赞
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:87.3万
展开全部
把@inv_type打出来看看是不是少单引号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hdh_yj
2011-09-01 · 超过12用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:19.5万
展开全部
你最好把这个显示出来看看,$inv_type的值很值得怀疑,整体输出时可能会多出符号,与原要的格式不符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式