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.");
            }
        }