关于SQL的Where子句中的In的问题.(急)
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/29 20:24:34
关于SQL的Where子句中的In的问题.(急)
where (inv_type like @inv_type
\x05or 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\x05@return_value int
EXEC\x05@return_value = [dbo].[prodRealInv]
\x05\x05@plantno = N'F15',
\x05\x05@customercd = N'%',
\x05\x05@productno = N'%',
\x05\x05@inv_type = N'''N'',''A''',
\x05\x05@OutputPlant = 1,
\x05\x05@OutputInvType = 1,
\x05\x05@OutputWork_order_no = 1
SELECT\x05'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语句写起来就非常麻烦了.
where (inv_type like @inv_type
\x05or 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\x05@return_value int
EXEC\x05@return_value = [dbo].[prodRealInv]
\x05\x05@plantno = N'F15',
\x05\x05@customercd = N'%',
\x05\x05@productno = N'%',
\x05\x05@inv_type = N'''N'',''A''',
\x05\x05@OutputPlant = 1,
\x05\x05@OutputInvType = 1,
\x05\x05@OutputWork_order_no = 1
SELECT\x05'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语句写起来就非常麻烦了.
这样肯定不行
你的参数必须是一个集合,如 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中的用法,不知道你是什么数据库
你的参数必须是一个集合,如 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中的用法,不知道你是什么数据库
SQL问题?SELECT语句中与HAVING子句通常同时使用的是( )子句。A.ORDER BY B.WHERE C.G
sql 语句中where子句后面like的条件如果有变量怎么写表达式?
SQL语句的where
"WHERE子句使用的索引和ORDER BY子句中所使用的索引不能并列.
在oracle中where 子句和having子句中的区别
vf中在使用HAVING子句的同时是否可以使用WHERE子句
sql连接查询语句中from子句中表的顺序有什么要求
select-sql 语句中,筛选用(?)子句,分组用group by 子句,排序用order by 子句
SQL中Having和where的用法
SQL 查询语句的问题
vf中在使用HAVING子句的同时是否可以使用WHERE子
赞美冬天的句子句句子子句子