遇到就筆記一下...
-- 使用 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 NorthwindGO--SELECT CustomerID, City, Region, CountryFROM CustomersGO-- 使用 ISNULL 函數,用 N/A 字串來取代所有 NULL 項目SELECT CustomerID, City, ISNULL(Region, 'N/A') Region, CountryFROM CustomersGO |
EX2. 彙總函數與 NULL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| -- 建立資料表:tbAggsUSE tempdbGOIF 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]GOCREATE TABLE tbAggs(rid int, sales int)GOINSERT tbAggs VALUES(1,10),(2,20)INSERT tbAggs(rid) VALUES(3)GO-- 查詢資料表內容SELECT * FROM tbAggsGO |
-- 02_查詢資料表內容
1
2
3
4
| -- 使用 SUM 函數、AVG 函數SELECT SUM(sales) N'總和', AVG(sales) N'平均值'FROM tbAggsGO |
-- 03_使用 SUM 函數、AVG 函數
1
2
3
4
| -- 使用 ISNULL 函數,用 0 來取代所有 NULL 項目SELECT rid, ISNULL(sales, 0) 'sales'FROM tbAggsGO |
-- 04_使用 ISNULL 函數,用 0 來取代所有 NULL 項目
1
2
3
4
| -- 加入 AVG 函數,搭配使用 ISNULL 函數SELECT AVG(ISNULL(sales, 0)) N'平均值'FROM tbAggsGO |
-- 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





沒有留言:
張貼留言