static ISqlOver <TValue> OrderByPriv <TValue>(this ISqlOver <TValue> that, bool isDesc)
        {
            var sb = expSbLast.Sb;

            if (expSbLast.IsOrderBy == false)
            {
                sb.Append(" order by ");
                expSbLast.IsOrderBy = true;
            }
            var exp = expContext.RawExpression["column"];

            if (exp.NodeType == ExpressionType.New)
            {
                var expNew = exp as NewExpression;
                for (var a = 0; a < expNew.Arguments.Count; a++)
                {
                    sb.Append(expContext.Utility.ParseExpression(expNew.Arguments[a]));
                    if (isDesc)
                    {
                        sb.Append(" desc");
                    }
                    sb.Append(",");
                }
            }
            else
            {
                sb.Append(expContext.ParsedContent["column"]);
                if (isDesc)
                {
                    sb.Append(" desc");
                }
                sb.Append(",");
            }
            return(that);
        }
        public static TValue ToValue <TValue>(this ISqlOver <TValue> that)
        {
            var sb = expSb.Value.ToString().TrimEnd(',');

            expSb.Value.Clear();
            expContext.Value.Result = $"{sb})";
            return(default);
        public static ISqlOver <TValue> PartitionBy <TValue>(this ISqlOver <TValue> that, object column)
        {
            var sb = expSbLast.Sb;

            sb.Append(" partition by ");
            var exp = expContext.RawExpression["column"];

            if (exp.NodeType == ExpressionType.New)
            {
                var expNew = exp as NewExpression;
                for (var a = 0; a < expNew.Arguments.Count; a++)
                {
                    if (a > 0)
                    {
                        sb.Append(",");
                    }
                    sb.Append(expContext.Utility.ParseExpression(expNew.Arguments[a]));
                }
            }
            else
            {
                sb.Append(expContext.ParsedContent["column"]);
            }
            return(that);
        }
예제 #4
0
        public static TValue ToValue <TValue>(this ISqlOver <TValue> that)
        {
            var sql = expSbLast.Sb.ToString().TrimEnd(',');

            expSbLast.Sb.Clear();
            expSb.Value.RemoveAt(expSb.Value.Count - 1);
            expContext.Result = $"{sql})";
            return(default);
        static ISqlOver <TValue> OrderBy <TValue>(this ISqlOver <TValue> that, bool isDesc)
        {
            var sb = expSb.Value;

            if (expSbIsOrderBy.Value == false)
            {
                sb.Append("ORDER BY ");
                expSbIsOrderBy.Value = true;
            }
            sb.Append(expContext.Value.ParsedContent["column"]);
            if (isDesc)
            {
                sb.Append(" desc");
            }
            sb.Append(",");
            return(that);
        }
예제 #6
0
        static ISqlOver <TValue> OrderByPriv <TValue>(this ISqlOver <TValue> that, bool isDesc)
        {
            var sb = expSbLast.Sb;

            if (expSbLast.IsOrderBy == false)
            {
                sb.Append(" order by ");
                expSbLast.IsOrderBy = true;
            }
            sb.Append(expContext.ParsedContent["column"]);
            if (isDesc)
            {
                sb.Append(" desc");
            }
            sb.Append(",");
            return(that);
        }
 public static ISqlOver <TValue> OrderByDescending <TValue>(this ISqlOver <TValue> that, object column) => OrderByPriv(that, true);
 public static ISqlOver <TValue> OrderBy <TValue>(this ISqlOver <TValue> that, object column) => OrderByPriv(that, false);
 public static ISqlOver <TValue> Over <TValue>(this ISqlOver <TValue> that)
 {
     expSbLast.Sb.Append(" over(");
     expSbLast.IsOver = true;
     return(that);
 }
 public static ISqlOver <TValue> PartitionBy <TValue>(this ISqlOver <TValue> that, object column)
 {
     expSb.Value.Append("PARTITION BY ").Append(expContext.Value.ParsedContent["column"]).Append(",");
     return(that);
 }
 public static ISqlOver <TValue> Over <TValue>(this ISqlOver <TValue> that)
 {
     expSb.Value.Append("OVER(");
     return(that);
 }
예제 #12
0
 public static ISqlOver <TValue> PartitionBy <TValue>(this ISqlOver <TValue> that, object column)
 {
     expSbLast.Sb.Append(" partition by ").Append(expContext.ParsedContent["column"]).Append(",");
     return(that);
 }