#r "Strata.SqlUtilities/bin/Debug/net8.0/Strata.SqlUtilities.dll" using Strata.SqlUtilities.Statements.SqlServer; using Strata.SqlUtilities.Expressions; // Test parsing SELECT clause into Expression objects var sql = @"SELECT ID, Name + ' ' + Email AS FullInfo, Price * Quantity AS Revenue FROM Users WHERE Status = 'Active' AND Age > 18"; var query = QueryBreakdown.Parse(sql); Console.WriteLine("=== Original SQL Clauses ==="); Console.WriteLine($"SELECT: {query.SelectClause.Clause}"); Console.WriteLine($"WHERE: {query.WhereClause.Clause}"); Console.WriteLine(); // Get SELECT expressions as Expression objects Console.WriteLine("=== Parsed SELECT Expressions ==="); var selectExpressions = query.GetSelectExpressions(); int index = 1; foreach (var expr in selectExpressions) { Console.WriteLine($"Expression {index++}: {expr.GetType().Name}"); Console.WriteLine($" ToString: {expr}"); } Console.WriteLine(); // Get WHERE expression as Expression object Console.WriteLine("=== Parsed WHERE Expression ==="); var whereExpression = query.GetWhereExpression(); if (whereExpression != null) { Console.WriteLine($"Expression Type: {whereExpression.GetType().Name}"); Console.WriteLine($" ToString: {whereExpression}"); }