SQL Server NULLIF() Function
SQL Server NULLIF() Function
The SQL Server NULLIF() function returns NULL if the two specified expressions are equal. Otherwise, it returns the first expression. This function is useful for handling and comparing NULL values in SQL queries.
Syntax
SELECT NULLIF(expression1, expression2);
The NULLIF() function takes two arguments:
expression1: The first expression to compare.expression2: The second expression to compare.
Example SQL Server NULLIF() Function Queries
Let's look at some examples of SQL Server NULLIF() function queries:
1. Basic NULLIF() Example
SELECT NULLIF(1, 1) AS result;
This query returns NULL because the two expressions (1 and 1) are equal. The result will be:
result
------
NULL
2. NULLIF() with Different Values
SELECT NULLIF(1, 2) AS result;
This query returns 1 because the two expressions (1 and 2) are not equal. The result will be:
result
------
1
3. NULLIF() with Column Values
SELECT id, value1, value2, NULLIF(value1, value2) AS result
FROM comparison_table;
This query compares value1 and value2 for each row in comparison_table and returns NULL if they are equal, otherwise returns value1. The result will show the original id, value1, value2, and the corresponding result.
4. NULLIF() with a Variable
DECLARE @value1 INT = 10;
DECLARE @value2 INT = 10;
SELECT NULLIF(@value1, @value2) AS result;
This query uses variables to store values and returns NULL because @value1 and @value2 are equal. The result will be:
result
------
NULL
Full Example
Let's go through a complete example that includes creating a table, inserting data, and using the NULLIF() function.
Step 1: Creating a Table
This step involves creating a new table named products to store some sample data with product prices.
CREATE TABLE products (
id INT PRIMARY KEY,
price DECIMAL(10, 2),
discounted_price DECIMAL(10, 2)
);
In this example, we create a table named products with columns for id, price, and discounted_price.
Step 2: Inserting Data into the Table
This step involves inserting some sample data into the products table.
INSERT INTO products (id, price, discounted_price) VALUES (1, 100.00, 90.00);
INSERT INTO products (id, price, discounted_price) VALUES (2, 200.00, 200.00);
INSERT INTO products (id, price, discounted_price) VALUES (3, 300.00, 250.00);
Here, we insert data into the products table.
Step 3: Using the NULLIF() Function
This step involves using the NULLIF() function to compare price and discounted_price and return NULL if they are equal.
SELECT id, price, discounted_price, NULLIF(price, discounted_price) AS result
FROM products;
This query retrieves the id, price, discounted_price, and the result of NULLIF(price, discounted_price) for each row in the products table. The result will be:
id price discounted_price result
--- ------ ----------------- ------
1 100.00 90.00 100.00
2 200.00 200.00 NULL
3 300.00 250.00 300.00
Conclusion
The SQL Server NULLIF() function is a powerful tool for handling and comparing NULL values. Understanding how to use the NULLIF() function and its syntax is essential for effective data processing and manipulation in SQL Server.