Write a program that will check the answers for the latest test. The program will be given a table answers with the following columns:
id – the unique ID of the question;
correct_answer – the correct answer to the question, given as a string;
given_answer – the answer given to the question, which can be NULL.
Your task is to return the table with a column id and a column checks, where for each answers id the following string should be returned:
"no answer" if the given_answer is empty;
"correct" if the given_answer is the same as the correct_answer;
"incorrect" if the given_answer is not empty and is incorrect.
Order the records in the answer table by id.
CREATE PROCEDURE testCheck()
SELECT id, IF (...) AS checks
FROM answers
ORDER BY id;
Advertisement
Answer
Use CASE rather than IF when there are multiple conditions.
SELECT id,
CASE WHEN given_answer IS NULL THEN 'no answer'
WHEN given_answer = correct_answer THEN 'correct'
ELSE 'incorrect'
END as checks
FROM answers
ORDER BY id
