protected override void IfNull(StringBuilder builder, SqlExpression expr) { builder.Append("nvl("); this.Expression(builder, expr.SubExpr1); builder.Append(", "); this.Expression(builder, expr.SubExpr2); builder.Append(")"); }
public SelectColumn(string columnName, FromTerm table, string columnAlias, SqlAggregationFunction function) { if (function == SqlAggregationFunction.None) { this.expr = SqlExpression.Field(columnName, table); } else { this.expr = SqlExpression.Function(function, SqlExpression.Field(columnName, table)); } this.alias = columnAlias; }
public static SqlExpression SubQuery(SelectQuery query) { SqlExpression expression = new SqlExpression(); expression.val = query; expression.type = SqlExpressionType.SubQueryObject; return expression; }
public static SqlExpression Raw(string sql) { SqlExpression expression = new SqlExpression(); expression.val = sql; expression.type = SqlExpressionType.Raw; return expression; }
public static SqlExpression Parameter(string paramName) { SqlExpression expression = new SqlExpression(); expression.val = paramName; expression.type = SqlExpressionType.Parameter; return expression; }
public static SqlExpression Null() { SqlExpression expression = new SqlExpression(); expression.type = SqlExpressionType.Null; return expression; }
public static SqlExpression IfNull(SqlExpression test, SqlExpression val) { SqlExpression expression = new SqlExpression(); expression.type = SqlExpressionType.IfNull; expression.subExpr1 = test; expression.subExpr2 = val; return expression; }
protected virtual void Function(StringBuilder builder, SqlAggregationFunction func, SqlExpression param) { builder.AppendFormat("{0}(", func.ToString()); this.Expression(builder, param); builder.AppendFormat(")", new object[0]); }
public static SqlExpression Case(SkyMap.Net.SqlOM.CaseClause caseClause) { SqlExpression expression = new SqlExpression(); expression.type = SqlExpressionType.Case; expression.caseClause = caseClause; return expression; }
public static SqlExpression Constant(SqlDataType dataType, object val) { SqlExpression expression = new SqlExpression(); expression.val = new SqlConstant(dataType, val); expression.type = SqlExpressionType.Constant; return expression; }
public CaseTerm(WhereClause condition, SqlExpression val) { this.cond = condition; this.val = val; }
public SelectColumn(SqlExpression expr, string columnAlias) { this.expr = expr; this.alias = columnAlias; }
protected abstract void IfNull(StringBuilder builder, SqlExpression expr);
public static SqlExpression SubQuery(string queryText) { SqlExpression expression = new SqlExpression(); expression.val = queryText; expression.type = SqlExpressionType.SubQueryText; return expression; }
public static SqlExpression Field(string fieldName, FromTerm table) { SqlExpression expression = new SqlExpression(); expression.val = fieldName; expression.table = table; expression.type = SqlExpressionType.Field; return expression; }
internal static SqlExpression PseudoField(string fieldName) { SqlExpression expression = new SqlExpression(); expression.val = fieldName; expression.type = SqlExpressionType.PseudoField; return expression; }
public static SqlExpression Function(SqlAggregationFunction func, SqlExpression param) { SqlExpression expression = new SqlExpression(); expression.type = SqlExpressionType.Function; expression.subExpr1 = param; expression.func = func; return expression; }
public static SqlExpression Constant(SqlConstant val) { SqlExpression expression = new SqlExpression(); expression.val = val; expression.type = SqlExpressionType.Constant; return expression; }
protected virtual void Expression(StringBuilder builder, SqlExpression expr) { SqlExpressionType type = expr.Type; if (type == SqlExpressionType.Field) { this.QualifiedIdentifier(builder, expr.TableAlias, expr.Value.ToString()); } else if (type == SqlExpressionType.Function) { this.Function(builder, expr.AggFunction, expr.SubExpr1); } else if (type == SqlExpressionType.Constant) { this.Constant(builder, (SqlConstant) expr.Value); } else if (type == SqlExpressionType.SubQueryText) { builder.AppendFormat("({0})", (string) expr.Value); } else if (type == SqlExpressionType.SubQueryObject) { builder.AppendFormat("({0})", this.RenderSelect((SelectQuery) expr.Value)); } else if (type == SqlExpressionType.PseudoField) { builder.AppendFormat("{0}", (string) expr.Value); } else if (type == SqlExpressionType.Parameter) { builder.AppendFormat("{0}", (string) expr.Value); } else if (type == SqlExpressionType.Raw) { builder.AppendFormat("{0}", (string) expr.Value); } else if (type == SqlExpressionType.Case) { this.CaseClause(builder, expr.CaseClause); } else if (type == SqlExpressionType.IfNull) { this.IfNull(builder, expr); } else { if (type != SqlExpressionType.Null) { throw new InvalidQueryException("Unkown expression type: " + type.ToString()); } builder.Append("null"); } }