仔细研究后在csdn上找到了解决该问题的办法帖出来给大家共享一下
大致方法是利用传递长字符串的形式向存储过程传递一个长字符串.由于sqlserver没有 splite函数
所以必须自己定义一个splite函数来进行处理
自定义一个函数
returns @temp table(F1 varchar(100))asbegindeclare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)while @i=1begininsert @temp values(left(@SourceSql,@i-1))
set @i=charindex(@StrSeprate,@SourceSql)endif @SourceSql''
获得该字符串数组的长度
如果要删除该函数使用--删除函数drop function fsplit
存储过程里定义不了数组.如果是sqlserver,那么你可以用表变量,游标来实现你的功能.
如果是一维数组:$nams=implode(',',
ArrarLIst);
select
*
from
table1
where
name
in
($names);
//注意字符查询需要前后带引号,数字不用
如果是多维数组:得遍历ArrarLIst数组,取出相应的name再串联起来
以上就是土嘎嘎小编为大家整理的sqlserver中数组相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!