遇到就筆記一下...
-- 使用 ISNULL 函數,用 N/A 字串來取代所有 NULL 項目
SELECT CustomerID, City, ISNULL(Region, 'N/A') Region, Country
-- 使用 ISNULL 函數,用 0 來取代所有 NULL 項目
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))
FROM Northwind..Products
SQL Server:認識 ISNULL 函數
ISNULL 函數:以指定的取代值來取代 NULL。
語法:
ISNULL ( check_expression , replacement_value )
check_expression
這是要檢查 NULL 的運算式。check_expression 可以是任何類型。
replacement_value
這是 check_expression 是 NULL 時所傳回的運算式。replacement_value 必須是能夠隱含地轉換成 check_expresssion 類型的類型。
請參考以下的範例程式碼
EX1. 認識 ISNULL 函數
-- 01_使用 ISNULL 函數,用 NA 字串來取代所有 NULL 項目
EX2. 彙總函數與 NULL
-- 02_查詢資料表內容
-- 03_使用 SUM 函數、AVG 函數
-- 04_使用 ISNULL 函數,用 0 來取代所有 NULL 項目
-- 05_加入 AVG 函數,搭配使用 ISNULL 函數
參考資料
ISNULL (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/ms184325.aspx
COALESCE (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/ms190349(v=sql.110).aspx
語法:
ISNULL ( check_expression , replacement_value )
check_expression
這是要檢查 NULL 的運算式。check_expression 可以是任何類型。
replacement_value
這是 check_expression 是 NULL 時所傳回的運算式。replacement_value 必須是能夠隱含地轉換成 check_expresssion 類型的類型。
請參考以下的範例程式碼
EX1. 認識 ISNULL 函數
1
2
3
4
5
6
7
8
9
10
11
| USE Northwind GO -- SELECT CustomerID, City, Region, Country FROM Customers GO -- 使用 ISNULL 函數,用 N/A 字串來取代所有 NULL 項目 SELECT CustomerID, City, ISNULL (Region, 'N/A' ) Region, Country FROM Customers GO |
EX2. 彙總函數與 NULL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| -- 建立資料表:tbAggs USE tempdb GO IF EXISTS ( SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N '[dbo].[tbAggs]' ) AND type in (N 'U' )) <span class= "Apple-tab-span" style= "white-space: pre;" > </span> DROP TABLE [dbo].[tbAggs] GO CREATE TABLE tbAggs (rid int , sales int ) GO INSERT tbAggs VALUES (1,10),(2,20) INSERT tbAggs(rid) VALUES (3) GO -- 查詢資料表內容 SELECT * FROM tbAggs GO |
-- 02_查詢資料表內容
1
2
3
4
| -- 使用 SUM 函數、AVG 函數 SELECT SUM (sales) N '總和' , AVG (sales) N '平均值' FROM tbAggs GO |
-- 03_使用 SUM 函數、AVG 函數
1
2
3
4
| -- 使用 ISNULL 函數,用 0 來取代所有 NULL 項目 SELECT rid, ISNULL (sales, 0) 'sales' FROM tbAggs GO |
-- 04_使用 ISNULL 函數,用 0 來取代所有 NULL 項目
1
2
3
4
| -- 加入 AVG 函數,搭配使用 ISNULL 函數 SELECT AVG ( ISNULL (sales, 0)) N '平均值' FROM tbAggs GO |
-- 05_加入 AVG 函數,搭配使用 ISNULL 函數
參考資料
ISNULL (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/ms184325.aspx
COALESCE (Transact-SQL)
http://msdn.microsoft.com/zh-tw/library/ms190349(v=sql.110).aspx
沒有留言:
張貼留言