public void BasicTest_ORDERBY() { SelectStmtInfo stmtInfo = new SelectStmtInfo(); stmtInfo.Columns.Add(new Column() { Expression = new ColumnExpression(ExpressionType.ColumnName) { ColumnName = "userId" } }); stmtInfo.Columns.Add(new Column() { Expression = new ColumnExpression(ExpressionType.ColumnName) { ColumnName = "userName" } }); stmtInfo.TableDescriptor = new TableDescriptor() { TableName = "me", TableReadType = TableReadType.NONE }; stmtInfo.OrderBy.Add(new OrderByCondition() { Expression = "userId", Direction = OrderByDirection.ASC }); IGenerator g = new DefaultSqlGenerator(); var sql = g.Generate(stmtInfo); Assert.AreEqual("SELECT userId, userName FROM me ORDER BY userId ASC", sql); }
public void BasicTest_PREDICT_NO_WHERE_NO_ORDERBY() { SelectStmtInfo stmtInfo = new SelectStmtInfo(); stmtInfo.Column_PredictExists = true; stmtInfo.Column_PredictWord = "DISTINCT"; stmtInfo.Columns.Add(new Column() { Expression = new ColumnExpression(ExpressionType.ColumnName) { ColumnName = "userId" } }); stmtInfo.Columns.Add(new Column() { Expression = new ColumnExpression(ExpressionType.ColumnName) { ColumnName = "userName" } }); stmtInfo.TableDescriptor = new TableDescriptor() { TableName = "me", TableReadType = TableReadType.NONE }; IGenerator g = new DefaultSqlGenerator(); var sql = g.Generate(stmtInfo); Assert.AreEqual("SELECT DISTINCT userId, userName FROM me", sql); }
public void BasicTest_Alias() { SelectStmtInfo stmtInfo = new SelectStmtInfo(); stmtInfo.Columns.Add(new Column() { Expression = new ColumnExpression(ExpressionType.ColumnName) { ColumnName = "userId" }, HasAlias = true, Alias = "UID" }); stmtInfo.Columns.Add(new Column() { Expression = new ColumnExpression(ExpressionType.ColumnName) { ColumnName = "userName" } }); stmtInfo.TableDescriptor = new TableDescriptor() { TableName = "me", TableReadType = TableReadType.NONE }; IGenerator g = new DefaultSqlGenerator(); var sql = g.Generate(stmtInfo); Assert.AreEqual("SELECT userId AS UID, userName FROM me", sql); }
static void Main(string[] args) { string sql = @"select * from [me]"; var info = SQLParser.ParseSQL(sql); var generator = new DefaultSqlGenerator(); Console.WriteLine(generator.Generate(info)); }
public void BasicTest_2_Condition() { SelectStmtInfo stmtInfo = new SelectStmtInfo(); stmtInfo.Columns.Add(new Column() { Expression = new ColumnExpression(ExpressionType.ColumnName) { ColumnName = "userId" } }); stmtInfo.Columns.Add(new Column() { Expression = new ColumnExpression(ExpressionType.ColumnName) { ColumnName = "userName" } }); stmtInfo.TableDescriptor = new TableDescriptor() { TableName = "me", TableReadType = TableReadType.NONE }; stmtInfo.WhereCondition = new WhereCondition(WhereConditionNodeType.Statement); stmtInfo.WhereCondition.Statement_Operator = "AND"; stmtInfo.WhereCondition.Statement_LeftNode = new WhereCondition(WhereConditionNodeType.Condition); stmtInfo.WhereCondition.Statement_LeftNode.Condition_LeftExpression = "userId"; stmtInfo.WhereCondition.Statement_LeftNode.Condition_Operator = ">"; stmtInfo.WhereCondition.Statement_LeftNode.Condition_RightExpression = "5"; stmtInfo.WhereCondition.Statement_RightNode = new WhereCondition(WhereConditionNodeType.Condition); stmtInfo.WhereCondition.Statement_RightNode.Condition_LeftExpression = "sex"; stmtInfo.WhereCondition.Statement_RightNode.Condition_Operator = "="; stmtInfo.WhereCondition.Statement_RightNode.Condition_RightExpression = "1"; stmtInfo.OrderBy.Add(new OrderByCondition() { Expression = "userId", Direction = OrderByDirection.ASC }); IGenerator g = new DefaultSqlGenerator(); var sql = g.Generate(stmtInfo); Assert.AreEqual("SELECT userId, userName FROM me WHERE (userId>5) AND (sex=1) ORDER BY userId ASC", sql); }