SQL NULL教學
-
Upload
vincent-chu -
Category
Documents
-
view
809 -
download
0
Transcript of SQL NULL教學
![Page 1: SQL NULL教學](https://reader036.fdocuments.us/reader036/viewer/2022082703/5571f8f649795991698e7b1b/html5/thumbnails/1.jpg)
--定義:NULL代表未知值,因此不等於任何值。
--NULL值的比較:
--在查詢篩選NULL值時,需使用IS NULL 或IS NOT NULL ,但當
進行彙總運算時
--對於群組條件中,具有NULL值的資料視為相同群組,並進行彙總
運算。
--或者是應用DISTINCT以選取非重覆值時,也會將NULL的資料整
併成一筆資料回傳。
GO SELECT * FROM Employees GO SELECT DISTINCT Email FROM Employees SELECT Email FROM Employees GROUP BY Email GO SELECT DISTINCT Email FROM Employees WHERE Email IS NOT NULL
![Page 2: SQL NULL教學](https://reader036.fdocuments.us/reader036/viewer/2022082703/5571f8f649795991698e7b1b/html5/thumbnails/2.jpg)
SELECT Email FROM Employees WHERE Email IS NOT NULL GROUP BY Email GO --NULL值的排序:
--由於ANSI並未對NULL的排序順序作定義,因此由各資料庫廠商
自行定義其規則。
--ORACLE預設NULL為最大值
--MSSQL預設NULL為最小值
GO SELECT DISTINCT Email FROM Employees ORDER BY Email GO --NULL的計算限制:
![Page 3: SQL NULL教學](https://reader036.fdocuments.us/reader036/viewer/2022082703/5571f8f649795991698e7b1b/html5/thumbnails/3.jpg)
--大部份的彙總函數是針對非NULL數值進行彙整運算,如採用
COUNT(expr)指令時,
--是將expr運算式(或欄位)中非NULL值的資料筆數作計數的結
果。
--其他加總(SUM)函數、平均值(AVERAGE)、標準差(Standard
Derivation)
--或變異數(Variance)等常用的彙總函數也適用。
--但COUNT(*)計數函數則會回傳所有資料列的筆數,包含NULL
值。
--任何數值與NULL進行運算均傳回NULL值,但對字串與NULL連結
的處理上則不同,
--MSSQL將回傳NULL值,而ORACLE則否。
GO SELECT * FROM Employees SELECT COUNT(*) FROM Employees SELECT COUNT(Email) FROM Employees SELECT COUNT(ISNULL(Email,0)) FROM Employees GO
![Page 4: SQL NULL教學](https://reader036.fdocuments.us/reader036/viewer/2022082703/5571f8f649795991698e7b1b/html5/thumbnails/4.jpg)
--語法
--ISNULL ( check_expression , replacement_value ) --參數
--<check_expression> --這是要檢查NULL 的運算式。check_expression 可以是
任何類型。
--<replacement_value> --這是check_expression 是NULL 時所傳回的運算式。
replacement_value --必須是能夠隱含地轉換成check_expresssion 類型的
類型。
select null+'A' --用預設值來替代NULL:
--由於NULL值使用上有諸多限制及注意事項,且當查詢NULL資料
時,
--往往造成索引失效的問題,可利用一些特定且具有意義(如
UNKNOWN)
--的資料以取代NULL,以避免上述困擾,也可以在欄位中指定預設
值,
--當使用者未輸入明確資料值時,可由資料庫自動填入預設值以替
![Page 5: SQL NULL教學](https://reader036.fdocuments.us/reader036/viewer/2022082703/5571f8f649795991698e7b1b/html5/thumbnails/5.jpg)
代NULL。