40 lines
1.3 KiB
C#
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}");
|
|
}
|