namespace TSQLParserExample
public static void Main(string[] args)
TSQLSelectStatement select = TSQLStatementReader.ParseStatements(@"
select * from tab1 where id in(select id from stu where tp=1)
select * from tab2 where id in(select id from stu where tp =2)")[0] as TSQLSelectStatement;
TSQLSelectStatement currentSelect = select;
Console.WriteLine("SELECT:");
foreach (TSQLToken token in currentSelect.Select.Tokens)
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);
if (currentSelect.From != null)
Console.WriteLine("FROM:");
foreach (TSQLToken token in currentSelect.From.Tokens)
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);
if (currentSelect.Where != null)
Console.WriteLine("WHERE:");
foreach (TSQLToken token in currentSelect.Where.Tokens)
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);
if (currentSelect.GroupBy != null)
Console.WriteLine("GROUP BY:");
foreach (TSQLToken token in currentSelect.GroupBy.Tokens)
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);
if (currentSelect.Having != null)
Console.WriteLine("HAVING:");
foreach (TSQLToken token in currentSelect.Having.Tokens)
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);
if (currentSelect.SetOperator != null)
Console.WriteLine("SET:");
foreach (TSQLToken token in currentSelect.SetOperator.Tokens)
if (token.IsKeyword(TSQLKeywords.SELECT))
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);
currentSelect = currentSelect.SetOperator.Select;
if (select.OrderBy != null)
Console.WriteLine("ORDER BY:");
foreach (TSQLToken token in select.OrderBy.Tokens)
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);