Yes, use an if statement, inside your post loop do something like this:
while ( have_posts() {
the_post();
$value = get_post_meta( $post->ID, 'metakey', true );
if ( $value == 'a' ) {
get_template_part( 'something' );
} else {
get_template_part( 'somethingelse');
}
}
If I were to take your question more literally however, I might interpret it as:
WordPress loads
single-review.php
when I load my review post, but i want it to load a different file instead if a custom meta has a certain value.
To which there is an answer that would let you do that. But it’s massive overkill for what you’re trying to do, and digging a hole for yourself, especially when such a simple basic alternative exists. I think you have to question why it is that you need to choose a completely different template based on a custom meta, or if it’s the entire template that needs changing