sql in 字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql in 字符串相关的知识,希望对你有一定的参考价值。
select count(ProjectID) from WZT_Project where ProjectID in (@ProjectID)
其中@ProjectID是存储过程中的一个参数,是一个字符串类型的
假如@ProjectID 为“abc,cde,efg”。怎么IN @ProjectID里的每一个字符串呀
请高手帮忙
IN 后面的的参数是这样的('abc','cde','efg')
而我的@ProjectID是存储过程的一个参数,传过去后是这样的
'abc,cde.egf'我怎么把'abc,cde.egf'变成'abc','cde','efg'这样的形式呀。直接IN(@ProjectID)的话,是找不到成'abc','cde','efg'这三行的
在存储过程里怎么实现
贰壹肆伍捌
因为要处理好多表,所以得在存储过程里实现,怎么实现呀,我就想知道在存储过程里怎么实现?
还请贰壹肆伍捌赐教
是不是
Split(',')...??然后可以得到每个子字符串.
然后再 in 每个子字符串.
-------------------
string str="abc,cde,egf";
string[] val=str.Split(',');
string newstr="";
for(int ii=0;ii<val.Length;ii++)
newstr=newstr+"'"+val[ii]+"'"+",";
newstr=newstr.SubString(0,newstr.Length-1);//去掉最后一个逗号
//得newstr值为:'abc','cde','egf'
------------------
不用在存储过程里实现...你在程序里把字符串处理成上面的那样儿.然后再使用存储过程.传的参数是处理后的字符串. 参考技术B 你应该 在in(@var1,@var2,@var3) 加三个参数
然后 直接 把 abc ,cde, efg 分别赋值给 @var1,@var2,@var3
你难道非要让存储过程就有一个参数吗?那样的话你就要用SQL server 对传进参数作处理了! SQL server ,主要是处理数据库的,虽然他也有 控制结构 ,但是处理 你这个问题还是不如一门单纯的高级语言 !所以还是建议你 给存储过程传3个参数
这样做的话, 应该更直观,更容易理解吧 参考技术C 你这样写了自动就in了啊。
例如:
select * from table where username in ('张三','李四','王五')
这句语句就是把username等于张三李四王五的找出来。
如果你上面问的是要传值给存储过程的话,就在代码里写
sqlString="存储过程名 " + "张三,李四,王五" ;
者样就行了 参考技术D replace(@ProjectID,',',''',''')本回答被提问者采纳 第5个回答 2014-12-24 楼主你这问题解决没,采纳的是啥意思
sql SQL INT IN分隔字符串
以上是关于sql in 字符串的主要内容,如果未能解决你的问题,请参考以下文章