【发布时间】:2012-07-27 23:09:18
【问题描述】:
我有一列包含许多行。我正在将值列表传递给方法。我希望返回该列的子字符串包含我要查找的值的所有行。
目前,我使用CHARINDEX 来检查单个子字符串,并为每个后续子字符串附加OR CHARINDEX。这很混乱,我相信你会欣赏的。
所以,目前,我有:
[Long SQL query]...
queryString.Append(string.Format(" (AND CHARINDEX( '{0}', Table.Column ) > 0 ", ListOfValues[0]));
foreach (string value in ListOfValues)
{
queryString.Append(string.Format("OR CHARINDEX( '{0}', Table.Column ) > 0 ", value));
}
queryString.Append(string.Format(")AND CHARINDEX( '{0}', Table.Column) > 0)"));
queryString.Append(")");
有没有更不可怕的语法方式来做到这一点? :)
谢谢
【问题讨论】:
-
你最后的 Append 是什么意思?它似乎使用占位符调用 Format 但没有参数,我无法弄清楚它应该做什么......
-
您应该能够更新您的帖子以更正违规代码。
标签: c# sql sql-server select