private Expression DoDecimalCompare(SqlExpression visitedExpression, ExpressionType op, SqlExpression left, SqlExpression right) { var actual = SqlExpressionFactory.Function( name: "ef_compare", new[] { left, right }, nullable: true, new[] { true, true }, typeof(int)); var oracle = SqlExpressionFactory.Constant(value: 0); return(op switch { ExpressionType.GreaterThan => SqlExpressionFactory.GreaterThan(left: actual, right: oracle), ExpressionType.GreaterThanOrEqual => SqlExpressionFactory.GreaterThanOrEqual(left: actual, right: oracle), ExpressionType.LessThan => SqlExpressionFactory.LessThan(left: actual, right: oracle), ExpressionType.LessThanOrEqual => SqlExpressionFactory.LessThanOrEqual(left: actual, right: oracle), _ => visitedExpression });