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);
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            string sql  = @"select * from [me]";
            var    info = SQLParser.ParseSQL(sql);

            var generator = new DefaultSqlGenerator();

            Console.WriteLine(generator.Generate(info));
        }
Beispiel #5
0
        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);
        }