ISNULL 函數:以指定的取代值來取代 NULL。
語法:
ISNULL ( check_expression , replacement_value )
check_expression
這是要檢查 NULL 的運算式。check_expression 可以是任何類型。
replacement_value
這是 check_expression 是 NULL 時所傳回的運算式。replacement_value 必須是能夠隱含地轉換成 check_expresssion 類型的類型。
請參考以下的範例程式碼
EX1. 認識 ISNULL 函數
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
-- 01_使用 ISNULL 函數,用 NA 字串來取代所有 NULL 項目
EX2. 彙總函數與 NULL
-- 建立資料表:tbAggs
USE tempdb
GO
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbAggs]') AND type in (N'U'))
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_查詢資料表內容
-- 使用 SUM 函數、AVG 函數 SELECT SUM(sales) N'總和', AVG(sales) N'平均值' FROM tbAggs GO
-- 03_使用 SUM 函數、AVG 函數
-- 使用 ISNULL 函數,用 0 來取代所有 NULL 項目 SELECT rid, ISNULL(sales, 0) 'sales' FROM tbAggs GO
-- 04_使用 ISNULL 函數,用 0 來取代所有 NULL 項目
-- 加入 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
沒有留言:
張貼留言