如何从特定单词中删除部分字符串?

时间:2017-07-11 06:35:58

标签: c# sql sql-server

以下是我的SQL查询:

select * from Table where col1 = @param1 and col2 = @param2

现在我想删除where子句中的所有内容,因此预期输出如下所示:

select * from Table;

代码:

string str = "select * from Table where col1 = @param1 and col2 = @param2";

var str = sqlQuery.Replace("where", ""); // select * from Table col1 = @param1 and col2 = @param2

2 个答案:

答案 0 :(得分:7)

一种方法是使用IndexOfSubstring

var sql = "select* from Table where col1 = @param1 and col2 = @param2";
var index = sql.IndexOf("where", StringComparison.OrdinalIgnoreCase);
var newSql = sql.Substring(0, index);

您也可以使用Trim删除末尾的空白区域。这看起来像。

var newSql = sql.Substring(0, index).Trim();

答案 1 :(得分:2)

我在@Mighty Badaboom提供的答案的帮助下创建了以下扩展方法。

 static public string Foo(this string original,string wordToFind, StringComparison stringComparision = StringComparison.OrdinalIgnoreCase)
        {
            var index = original.IndexOf("where", stringComparision);
            return original.Substring(0, index).Trim();
        }

string newSql = Foo(str, "where", StringComparison.OrdinalIgnoreCase);