Hi,
Have you tried Regex?
Something like
Regex r = new Regex(@"((?'tab'\w+)\.(?'col'\w+)(\s*=\s*\'(?'val'\w+)\'|\s+IN\s*\((?'item'\s*\'(?'val'\w+)\'\s*,?)+\)))");
var matches = r.Matches(strVal);
string column1 = null, column2 = null;
string[] column3 = null;
foreach (Match m in matches)
{
Group col = m.Groups["col"];
if (col.Success)
{
switch (col.Value)
{
case "column1":
column1 = m.Groups["val"].Value;
break;
case "column2":
column2 = m.Groups["val"].Value;
break;
case "column3":
column3 = m.Groups["val"].Captures.Cast<capture>().Select(c => c.Value).ToArray();
break;
}
}
}
</capture>
Sorry for bad style, ideafixxxer