sql server 存储过程传参问题. 一个参数如何可以输入多个参数值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 存储过程传参问题. 一个参数如何可以输入多个参数值相关的知识,希望对你有一定的参考价值。

create proc test(
@部门编码 as varchar(50)

)
as
select 部门编码, 费用
from temp_test t
where t.财务编码 like @部门编码 +'%';
exec test '01';
------------------------上面的是输入 01那么就自动匹配01下所有的费用.-----
我想要得就是 输入 01,02 时都能匹配下面所有的.
如:
exec test '01,02' 得住是 01和02 的费用
自己解决了

sql server 2005之后,可以使用xml数据类型传值,然后在存储过程中将xml解析成表,和temp_test表连接。

sql server 2008之后,可以使用表变量,传给存储过程。
参考技术A like %就包含in了,不过你的需求很麻烦,最好你直接把参数写成正则,如
exec test '0[12]'
这样执行相当与like '01%' or like '02%'
参考技术B create proc test(
@部门编码 1 varchar(50)
@部门编码 2 varchar(50)
)
as
select 部门编码, 费用
from temp_test t
where t.财务编码 like @部门编码1 +'%' and @部门编码2+'%';

这个意思吗?本回答被提问者采纳

sql server 中 一个要输入参数和输出参数的存储过程。

参考技术A

1、创建存储过程,包含入参、出参,返回入参除以的数据;

create or replace procedure test_proc(in_num number, out_num out number)

as

begin

  out_num := in_num/2;

end;

2、调用该函数,进行测试;入参为10,可以发现返回值是5;

3、编写sql语句块,在语句块中调用存储过程;

declare

v1 number;

v2 number;

begin

  test_proc(12, v2);

  dbms_output.put_line(v2);

end;

4、执行该脚本,可以发现返回值为12/2=6;

以上是关于sql server 存储过程传参问题. 一个参数如何可以输入多个参数值的主要内容,如果未能解决你的问题,请参考以下文章

Azure sql database 监控存储过程的传参情况

SQL server简单的存储过程问题?

SQL-Server存储过程中的参数问题!

如何在sql server中创建一个存储过程中的varchar型的输入参数默认值为空

SQL Server 存储过程等待参数

SQL Server 存储过程参数类型转换