private SqlObject ReduceUnary(SqlObject value) { switch (ExpressionType) { case SqlExpressionType.UnaryPlus: return(value.Plus()); case SqlExpressionType.Negate: return(value.Negate()); case SqlExpressionType.Not: return(value.Not()); default: throw new SqlExpressionException($"Expression of type {ExpressionType} is not unary."); } }