2012-08-03 96 views
0

我有串象下面这样:在字符串查找字符串包含SQL Server中的逗号

string s; //reading from front end like s='color' 
string s1; //reading from front end like s1='prototype' 

string str=s+","+s1; 

所以str="color,prototype"

和字符串str可以包含像str="color,prototype,niranjan,cloud";

许多字符串我想将其发送到数据库,并将其按照如下行插入到表中:

id   value 
    1   color 
    2   prototye  
    3   niranjan 
    4   cloud 

因此,一个存储过程或查询来查找上述要求。

+0

你为什么要串联成一个单一的字符串?为什么不创建一个需要多个参数的proc? – 2012-08-03 22:27:06

回答

0

遵循这一点,如果你的SQL Server> 2000

DECLARE @S varchar(max), 
    @Split char(1), 
    @X xml 

SELECT @S = '1,2,3,4,5', 
    @Split = ',' 

SELECT @X = CONVERT(xml,'<root><s>' + REPLACE(@S,@Split,'</s><s>') + '</s></root>') 

SELECT [Value] = T.c.value('.','varchar(20)') 
FROM @X.nodes('/root/s') T(c) 

参考:http://social.msdn.microsoft.com/forums/en-US/transactsql/thread/4126a010-6885-4eb0-b79c-c798c90edb85

别人去FORR在创建了一个简单拆分功能:http://blog.logiclabz.com/sql-server/split-function-in-sql-server-to-break-comma-separated-strings-into-table.aspx

+0

什么是T和C. – user1508943 2012-08-04 16:05:57

+0

只是为了表示,你可以使用t.c通过p.q和t(c)通过p(q) – 2012-08-05 02:15:06

+0

请选择我的答案,如果那对你有帮助 – 2012-08-05 02:15:27