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