Files

40 lines
1.3 KiB
C#

#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}");
}