本文將詳細介紹MySQL中的排空函數(shù),包括IFNULL、COALESCE、NULLIF和NVL。讓我們一起來了解一下。
IFNULL函數(shù)
IFNULL函數(shù)的作用是,如果第一個參數(shù)不為空,則返回第一個參數(shù),否則返回第二個參數(shù)。其語法如下:
IFNULL(expr1, 如果expr1不為空,則IFNULL函數(shù)返回expr1的值,否則返回expr2的值。
tsame和age三個字段。我們想要查詢每個學(xué)生的姓名和年齡,如果年齡為空,則顯示為“未知”。可以使用以下SQL語句:
amets;
COALESCE函數(shù)
COALESCE函數(shù)的作用和IFNULL函數(shù)類似,也是用于處理空值。它的語法如下:
COALESCE(expr1, expr2, ...)
其中,expr1、expr2等都是表達式,如果第一個參數(shù)不為空,則返回第一個參數(shù),否則繼續(xù)判斷下一個參數(shù),直到找到一個不為空的參數(shù)為止。
er、product和price四個字段。我們想要查詢每個訂單的客戶、產(chǎn)品和價格。如果客戶或產(chǎn)品為空,則顯示為“未知”,如果價格為空,則顯示為0。可以使用以下SQL語句:
erer, COALESCE(product, '未知') AS product, COALESCE(price, 0) AS price FROM orders;
NULLIF函數(shù)
NULLIF函數(shù)的作用是,如果第一個參數(shù)和第二個參數(shù)相等,則返回NULL,否則返回第一個參數(shù)。其語法如下:
NULLIF(expr1, 如果expr1和expr2相等,則NULLIF函數(shù)返回NULL,否則返回expr1的值。
ployeesame和salary三個字段。我們想要查詢每個員工的姓名和月薪,如果月薪低于2000元,則顯示為NULL。可以使用以下SQL語句:
ameployees;
NVL函數(shù)
NVL函數(shù)是Oracle數(shù)據(jù)庫中的一個排空函數(shù),但是在MySQL中也可以使用。它的作用和IFNULL函數(shù)類似,也是用于處理空值。其語法如下:
NVL(expr1, 如果expr1不為空,則返回expr1的值,否則返回expr2的值。
ame和price三個字段。我們想要查詢每個產(chǎn)品的名稱和價格,如果價格為空,則顯示為0。可以使用以下SQL語句:
ame, NVL(price, 0) AS price FROM products;
MySQL提供了IFNULL、COALESCE、NULLIF和NVL這幾個排空函數(shù),可以幫助我們更好地處理查詢結(jié)果中的空值。使用這些函數(shù),能夠讓查詢結(jié)果更加簡潔明了,提高查詢效率,讓我們的工作更加輕松。