在SQL里,做了一个存储,比如: ALTER PROC HTProc @bgdate date, @eddate date, @wftypeid int, @wfname varchar(300), @area varchar(200) AS BEGIN --比如参数@area 我想能传多个值,如下 SELECT * FROM TABLE WHERE area in (@area) 这样写我若执行存储时无数据,如: EXEC HTProc '北京,上海' --查出无数据 EXEC HTProc '北京' --单个是有数据 参数@area如何设置呢 ============================= 最优的方法是自定义分割字符串函数: create function SplitIn(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as begin while(charindex(@split,@c)<>0) begin insert @t(col) values (substring(@c,1,charindex(@split,@c)-1)) set @c = stuff(@c,1,charindex(@split,@c),'') end insert @t(col) values (@c) return end |