namespace TSQLParserExample
public static void Main(string[] args)
TSQLSelectStatement select = TSQLStatementReader.ParseStatements(@"
SELECT OrderDateKey, SUM(SalesAmount) AS TotalSales
HAVING OrderDateKey > 20010000
ORDER BY OrderDateKey;")[0] as TSQLSelectStatement;
Console.WriteLine("SELECT:");
foreach (TSQLToken token in select.Select.Tokens)
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);
Console.WriteLine("FROM:");
foreach (TSQLToken token in select.From.Tokens)
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);
if (select.Where != null)
Console.WriteLine("WHERE:");
foreach (TSQLToken token in select.Where.Tokens)
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);
if (select.GroupBy != null)
Console.WriteLine("GROUP BY:");
foreach (TSQLToken token in select.GroupBy.Tokens)
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);
if (select.Having != null)
Console.WriteLine("HAVING:");
foreach (TSQLToken token in select.Having.Tokens)
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);
if (select.OrderBy != null)
Console.WriteLine("ORDER BY:");
foreach (TSQLToken token in select.OrderBy.Tokens)
Console.WriteLine("\ttype: " + token.Type.ToString() + ", value: " + token.Text);