Let us assume, I have table name "dbo.Quiz" with columns "qid", "question" and "number_of_attempts". Some questions have never been attempted before, so their "number_of_attempts" value is NULL. I want to update the "number_of_attempts" value for specific questions every time they are attempted.
Here's the SQL query.
UPDATE dbo.Quiz SET number_of_attempts = COALESCE(number_of_attempts, 0) + 1 WHERE QID IN (2, 3, 9);
If the "number_of_attempts" value for a question is NULL, it is treated as 0 and incremented to 1. However, if the number_of_attempts value is already a number, it is simply incremented by 1.
COALESCE() function in SQL Server
The COALESCE() function in SQL Server is useful when dealing with NULL values.
Syntax:
COALESCE(expression1, expression2, ..., expressionN)
COALESCE takes multiple expressions and returns the first non-NULL expression from the list.
1) COALESCE allows you to substitute NULL values with a specified default value. This is especially useful when you want to avoid NULL values in your results or computations.
2) By using COALESCE, you can maintain data integrity and avoid unexpected results caused by NULL values. It helps ensure that your queries and calculations return meaningful and accurate results.
3) COALESCE makes your SQL queries more readable and easier to understand. Instead of writing complex CASE statements or using multiple IS NULL checks, you can achieve the same result with a simple and clear COALESCE function.
4) This is important: COALESCE can take multiple arguments and returns the first non-NULL value from the list. This makes it versatile for handling multiple possible NULL values in your data.
🚀 More SQL Tips
• How to find employees who were hired in the last n months?
• How to edit more than 200 rows in SQL Server Management Studio?
• Can an SQL query contain both "where and having" clause?