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

Win*_*-10 5 sql t-sql sql-server sql-server-2005

我有这个字符串,我从.net应用程序A,B,C,D,E,F,

我想编写一个像sql select语句一样的

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

select * from tbl_test 
where tbl_test.code in (@string)
Run Code Online (Sandbox Code Playgroud)

这在t-SQL中不起作用,因为它使用的@string是一个字符串,它不会分隔值.有什么方法可以做到这一点吗?

Ale*_* LE 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
Run Code Online (Sandbox Code Playgroud)