ISNULL SQL function


1. Usage of ISNULL to show Stock Status and Quantity that needs to be order.

SQL Server Query 1

            
 SELECT  
ProductID,
ProductName,
UnitsInStock,
UnitsOnOrder,
ReorderLevel,
StockStatus =
CASE
WHEN UnitsInStock > 0 THEN 'In Stock'
ELSE 'Out of Stock'
END,
-- Prioritize UnitsOnOrder, then ReorderLevel, then 0
QuantityToOrder = ISNULL(COALESCE(UnitsOnOrder, ReorderLevel), 0)
FROM Products
ORDER BY ProductID;

Create SQL query with SqlQueryBuilder 1

            
 var (sql1, parameters1) = new SqlQueryBuilder()  
.Select()
.Columns("ProductID", "ProductName", "UnitsInStock", "UnitsOnOrder", "ReorderLevel")
.Column(new CASE()
.When(new Column("UnitsInStock").GreaterThan(0))
.Then("In Stock").Else("Out Of Stock")
, "StockStatus")
.Column(new ISNULL(new COALESCE(new Column("UnitsOnOrder"), new Column("ReorderLevel")), 0), "QuantityToOrder")
.From("Products")
.OrderBy(new OrderBy().Set(new Column("ProductID")))
.Build();

Query build by SqlQueryBuilder 1

            
SELECT ProductID,
       ProductName,
       UnitsInStock,
       UnitsOnOrder,
       ReorderLevel,
       CASE WHEN UnitsInStock > @pMAIN_2507200144082669950 THEN @pMAIN_2507200144082669951 ELSE @pMAIN_2507200144082669952 END AS StockStatus,
       ISNULL(COALESCE (UnitsOnOrder, ReorderLevel), @pMAIN_2507200144082669953) AS QuantityToOrder
FROM Products
ORDER BY ProductID ASC;


            
        

Parameters (If used)

Name Value
@pMAIN_2507200144082669950 0
@pMAIN_2507200144082669951 In Stock
@pMAIN_2507200144082669952 Out Of Stock
@pMAIN_2507200144082669953 0

Query Results 1:

  ProductID ProductName UnitInStock UnitsOnOrder ReorderLevel StockStatus QuantityToOrder
1 1 Chai 0 0 10 In Stock 0
2 2 Chang 0 40 25 In Stock 40
3 3 Aniseed Syrup 0 70 25 In Stock 70
4 4 Chef Anton's Cajun Seasoning 0 0 0 In Stock 0
5 5 Chef Anton's Gumbo Mix 0 0 0 Out Of Stock 0
6 6 Grandma's Boysenberry Spread 0 0 25 In Stock 0
7 7 Uncle Bob's Organic Dried Pears 0 0 10 In Stock 0
8 8 Northwoods Cranberry Sauce 0 0 0 In Stock 0
9 9 Mishi Kobe Niku 0 0 0 In Stock 0
10 10 Ikura 0 0 0 In Stock 0
11 11 Queso Cabrales 0 30 30 In Stock 30
12 12 Queso Manchego La Pastora 0 0 0 In Stock 0
13 13 Konbu 0 0 5 In Stock 0
14 14 Tofu 0 0 0 In Stock 0
15 15 Genen Shouyu 0 0 5 In Stock 0
16 16 Pavlova 0 0 10 In Stock 0
17 17 Alice Mutton 0 0 0 Out Of Stock 0
18 18 Carnarvon Tigers 0 0 0 In Stock 0
19 19 Teatime Chocolate Biscuits 0 0 5 In Stock 0
20 20 Sir Rodney's Marmalade 0 0 0 In Stock 0
21 21 Sir Rodney's Scones 0 40 5 In Stock 40
22 22 Gustaf's Knäckebröd 0 0 25 In Stock 0
23 23 Tunnbröd 0 0 25 In Stock 0
24 24 Guaraná Fantástica 0 0 0 In Stock 0
25 25 NuNuCa Nuß-Nougat-Creme 0 0 30 In Stock 0
26 26 Gumbär Gummibärchen 0 0 0 In Stock 0
27 27 Schoggi Schokolade 0 0 30 In Stock 0
28 28 Rössle Sauerkraut 0 0 0 In Stock 0
29 29 Thüringer Rostbratwurst 0 0 0 Out Of Stock 0
30 30 Nord-Ost Matjeshering 0 0 15 In Stock 0
31 31 Gorgonzola Telino 0 70 20 Out Of Stock 70
32 32 Mascarpone Fabioli 0 40 25 In Stock 40
33 33 Geitost 0 0 20 In Stock 0
34 34 Sasquatch Ale 0 0 15 In Stock 0
35 35 Steeleye Stout 0 0 15 In Stock 0
36 36 Inlagd Sill 0 0 20 In Stock 0
37 37 Gravad lax 0 50 25 In Stock 50
38 38 Côte de Blaye 0 0 15 In Stock 0
39 39 Chartreuse verte 0 0 5 In Stock 0
40 40 Boston Crab Meat 0 0 30 In Stock 0
41 41 Jack's New England Clam Chowder 0 0 10 In Stock 0
42 42 Singaporean Hokkien Fried Mee 0 0 0 In Stock 0
43 43 Ipoh Coffee 0 10 25 In Stock 10
44 44 Gula Malacca 0 0 15 In Stock 0
45 45 Rogede sild 0 70 15 In Stock 70
46 46 Spegesild 0 0 0 In Stock 0
47 47 Zaanse koeken 0 0 0 In Stock 0
48 48 Chocolade 0 70 25 In Stock 70
49 49 Maxilaku 0 60 15 In Stock 60
50 50 Valkoinen suklaa 0 0 30 In Stock 0
51 51 Manjimup Dried Apples 0 0 10 In Stock 0
52 52 Filo Mix 0 0 25 In Stock 0
53 53 Perth Pasties 0 0 0 Out Of Stock 0
54 54 Tourtière 0 0 10 In Stock 0
55 55 Pâté chinois 0 0 20 In Stock 0
56 56 Gnocchi di nonna Alice 0 10 30 In Stock 10
57 57 Ravioli Angelo 0 0 20 In Stock 0
58 58 Escargots de Bourgogne 0 0 20 In Stock 0
59 59 Raclette Courdavault 0 0 0 In Stock 0
60 60 Camembert Pierrot 0 0 0 In Stock 0
61 61 Sirop d'érable 0 0 25 In Stock 0
62 62 Tarte au sucre 0 0 0 In Stock 0
63 63 Vegie-spread 0 0 5 In Stock 0
64 64 Wimmers gute Semmelknödel 0 80 30 In Stock 80
65 65 Louisiana Fiery Hot Pepper Sauce 0 0 0 In Stock 0
66 66 Louisiana Hot Spiced Okra 0 100 20 In Stock 100
67 67 Laughing Lumberjack Lager 0 0 10 In Stock 0
68 68 Scottish Longbreads 0 10 15 In Stock 10
69 69 Gudbrandsdalsost 0 0 15 In Stock 0
70 70 Outback Lager 0 10 30 In Stock 10
71 71 Flotemysost 0 0 0 In Stock 0
72 72 Mozzarella di Giovanni 0 0 0 In Stock 0
73 73 Röd Kaviar 0 0 5 In Stock 0
74 74 Longlife Tofu 0 20 5 In Stock 20
75 75 Rhönbräu Klosterbier 0 0 25 In Stock 0
76 76 Lakkalikööri 0 0 20 In Stock 0
77 77 Original Frankfurter grüne Soße 0 0 15 In Stock 0


2. Usage of ISNULL to show Units in Stocks and to Order.

SQL Server Query 2

            
 SELECT  
ProductID,
ProductName,
UnitPrice,
UnitsInStock,
UnitsOnOrder,
-- Handle NULL UnitsInStock or UnitsOnOrder
InventoryValue = UnitPrice * ISNULL(UnitsInStock, 0) + UnitPrice * ISNULL(UnitsOnOrder, 0)
FROM Products
ORDER BY ProductID;

Create SQL query with SqlQueryBuilder 2

            
 var (sql2, parameters2) = new SqlQueryBuilder()  
.Select().Columns("ProductID", "ProductName", "UnitPrice", "UnitsInStock", "UnitsOnOrder")
.Column(new ColumnArithmatic("UnitPrice").MULTIPLY(new ISNULL(new Column("UnitsInStock"), 0))
.ADD(new Column("UnitPrice")).MULTIPLY(new ISNULL(new Column("UnitsOnOrder"), 0)), "InventoryValue")
.From("Products")
.OrderBy(new OrderBy().Set(new Column("ProductID")))
.Build();

Query build by SqlQueryBuilder 2

            
SELECT ProductID,
       ProductName,
       UnitPrice,
       UnitsInStock,
       UnitsOnOrder,
       UnitPrice * ISNULL(UnitsInStock, @pMAIN_2507200144082725220) + UnitPrice * ISNULL(UnitsOnOrder, @pMAIN_2507200144082725221) AS InventoryValue
FROM Products
ORDER BY ProductID ASC;


            
        

Parameters (If used)

Name Value
@pMAIN_2507200144082725220 0
@pMAIN_2507200144082725221 0

Query Results 2:

  ProductID ProductName UnitPrice UnitsInStock UnitsOnOrder InventoryValue
1 1 Chai 18 39 0 702.0000
2 2 Chang 19 17 40 1083.0000
3 3 Aniseed Syrup 10 13 70 830.0000
4 4 Chef Anton's Cajun Seasoning 22 53 0 1166.0000
5 5 Chef Anton's Gumbo Mix 21 0 0 0.0000
6 6 Grandma's Boysenberry Spread 25 120 0 3000.0000
7 7 Uncle Bob's Organic Dried Pears 30 15 0 450.0000
8 8 Northwoods Cranberry Sauce 40 6 0 240.0000
9 9 Mishi Kobe Niku 97 29 0 2813.0000
10 10 Ikura 31 31 0 961.0000
11 11 Queso Cabrales 21 22 30 1092.0000
12 12 Queso Manchego La Pastora 38 86 0 3268.0000
13 13 Konbu 6 24 0 144.0000
14 14 Tofu 23 35 0 813.7500
15 15 Genen Shouyu 15 39 0 604.5000
16 16 Pavlova 17 29 0 506.0500
17 17 Alice Mutton 39 0 0 0.0000
18 18 Carnarvon Tigers 62 42 0 2625.0000
19 19 Teatime Chocolate Biscuits 9 25 0 230.0000
20 20 Sir Rodney's Marmalade 81 40 0 3240.0000
21 21 Sir Rodney's Scones 10 3 40 430.0000
22 22 Gustaf's Knäckebröd 21 104 0 2184.0000
23 23 Tunnbröd 9 61 0 549.0000
24 24 Guaraná Fantástica 4 20 0 90.0000
25 25 NuNuCa Nuß-Nougat-Creme 14 76 0 1064.0000
26 26 Gumbär Gummibärchen 31 15 0 468.4500
27 27 Schoggi Schokolade 43 49 0 2151.1000
28 28 Rössle Sauerkraut 45 26 0 1185.6000
29 29 Thüringer Rostbratwurst 123 0 0 0.0000
30 30 Nord-Ost Matjeshering 25 10 0 258.9000
31 31 Gorgonzola Telino 12 0 70 875.0000
32 32 Mascarpone Fabioli 32 9 40 1568.0000
33 33 Geitost 2 112 0 280.0000
34 34 Sasquatch Ale 14 111 0 1554.0000
35 35 Steeleye Stout 18 20 0 360.0000
36 36 Inlagd Sill 19 112 0 2128.0000
37 37 Gravad lax 26 11 50 1586.0000
38 38 Côte de Blaye 263 17 0 4479.5000
39 39 Chartreuse verte 18 69 0 1242.0000
40 40 Boston Crab Meat 18 123 0 2263.2000
41 41 Jack's New England Clam Chowder 9 85 0 820.2500
42 42 Singaporean Hokkien Fried Mee 14 26 0 364.0000
43 43 Ipoh Coffee 46 17 10 1242.0000
44 44 Gula Malacca 19 27 0 525.1500
45 45 Rogede sild 9 5 70 712.5000
46 46 Spegesild 12 95 0 1140.0000
47 47 Zaanse koeken 9 36 0 342.0000
48 48 Chocolade 12 15 70 1083.7500
49 49 Maxilaku 20 10 60 1400.0000
50 50 Valkoinen suklaa 16 65 0 1056.2500
51 51 Manjimup Dried Apples 53 20 0 1060.0000
52 52 Filo Mix 7 38 0 266.0000
53 53 Perth Pasties 32 0 0 0.0000
54 54 Tourtière 7 21 0 156.4500
55 55 Pâté chinois 24 115 0 2760.0000
56 56 Gnocchi di nonna Alice 38 21 10 1178.0000
57 57 Ravioli Angelo 19 36 0 702.0000
58 58 Escargots de Bourgogne 13 62 0 821.5000
59 59 Raclette Courdavault 55 79 0 4345.0000
60 60 Camembert Pierrot 34 19 0 646.0000
61 61 Sirop d'érable 28 113 0 3220.5000
62 62 Tarte au sucre 49 17 0 838.1000
63 63 Vegie-spread 43 24 0 1053.6000
64 64 Wimmers gute Semmelknödel 33 22 80 3391.5000
65 65 Louisiana Fiery Hot Pepper Sauce 21 76 0 1599.8000
66 66 Louisiana Hot Spiced Okra 17 4 100 1768.0000
67 67 Laughing Lumberjack Lager 14 52 0 728.0000
68 68 Scottish Longbreads 12 6 10 200.0000
69 69 Gudbrandsdalsost 36 26 0 936.0000
70 70 Outback Lager 15 15 10 375.0000
71 71 Flotemysost 21 26 0 559.0000
72 72 Mozzarella di Giovanni 34 14 0 487.2000
73 73 Röd Kaviar 15 101 0 1515.0000
74 74 Longlife Tofu 10 4 20 240.0000
75 75 Rhönbräu Klosterbier 7 125 0 968.7500
76 76 Lakkalikööri 18 57 0 1026.0000
77 77 Original Frankfurter grüne Soße 13 32 0 416.0000