一尘不染

逗号分隔的SQL字符串需要分隔

sql

我有从.net应用程序A,B,C,D,E,F获取的字符串,

我想写一个SQL选择语句像

set @string = 'A,B,C,D,E,F'

select * from tbl_test 
where tbl_test.code in (@string)

这在t-SQL中将不起作用,因为它使用@string不将值分开的一个字符串。有什么办法可以做到这一点?


阅读 372

收藏
2021-03-10

共1个答案

一尘不染

它认为最简单的方法是动态SQL生成:

// assuming select is a SqlCommand
string[] values = "A,B,C,D,E,F".Split(',');
StringBuilder query = new StringBuilder();
query.Append("select * from tbl_test where tbl_test.code in (");
int i = 0;
foreach (string value in values) {
    string paramName = "@p" + i++;
    query.Append(paramName);
    select.Parameters.AddWithValue(paramName, value);
}
query.Append(")");
select.CommandText = query.ToString();

// and then execute the select Command
2021-03-10