mysql nvl函數(shù)用法 如何寫mysql中實現(xiàn)nvl功能的sql?
如何寫mysql中實現(xiàn)nvl功能的sql?MySQL的確實有一個ISNULL ( )函數(shù)。然而,它的作品有點不同,微軟的ISNULL ( )函數(shù)。 MySQL中我們可以使用IFNULL ( )函數(shù),就
如何寫mysql中實現(xiàn)nvl功能的sql?
MySQL的確實有一個ISNULL ( )函數(shù)。然而,它的作品有點不同,微軟的ISNULL ( )函數(shù)。 MySQL中我們可以使用IFNULL ( )函數(shù),就像這樣:
SELECT ProductName,UnitPrice*(UnitsInStock IFNULL(UnitsOnOrder,0))
FROM Products
DECLARE
t_name VARCHAR2(10)
t_course1 NUMBER
t_course2 NUMBER
t_course3 NUMBER
TYPE c_type IS REF CURSOR
cur c_type
BEGIN
OPEN cur FOR
"SELECT t_name,
SUM(CASE t_course WHEN """||"語文"||""" THEN t_score ELSE 0 END),
SUM(CASE t_course WHEN """||"數(shù)學"||""" THEN t_score ELSE 0 END),
SUM(CASE t_course WHEN """||"物理"||""" THEN t_score ELSE 0 END)
FROM tb GROUP BY t_name"
LOOP
FETCH cur INTO t_name,t_course1,t_course2,t_course3
EXIT WHEN cur%NOTFOUND
dbms_output.put_line(t_name||"語文"||t_course1||"數(shù)學"||t_course2||"物理"||t_course3)
END LOOP
CLOSE cur
數(shù)據(jù)庫中的NVL() 方法怎么用?
1、nvl(exp1,exp2)作用是如果表達式exp1為空則返回exp2表達式,如果exp1表達式不為空則返回exp1表達式。
2、但nvl函數(shù)有一個前提條件是兩個參數(shù)的數(shù)據(jù)類型要一樣,不然會報錯誤。如下圖由于comm是數(shù)字類型,所以第二個參數(shù)不能是其它類型。
3、nvl2函數(shù)語法nvl2(exp1,exp2,exp3)這個函數(shù)需要有三個參數(shù)。它的使用是如果exp1為空則返回exp3,如果exp1不為空則返回exp2。
4、但有一點需要注意的是nvl2函數(shù)中exp2與exp3數(shù)據(jù)類型要一樣,不然也會報錯。
5、但nvl2函數(shù)另外一點也需要注意,就是當exp2與exp3兩個參數(shù)數(shù)據(jù)類型不一樣的時候,exp3參數(shù)數(shù)據(jù)類型會轉(zhuǎn)換為exp2數(shù)據(jù)類型,但前提是可以進行轉(zhuǎn)換才可以,如果不能進行轉(zhuǎn)換是會報錯誤的。
6、nullif函數(shù)語法,nullif(exp1,exp2)它的作用是如果exp1與exp2兩個參數(shù)的值相等則返回空,如果不相等則返回exp1,同樣兩個參數(shù)的數(shù)據(jù)類型也要一樣。
數(shù)據(jù)庫中nvl是什么意思?
NVL是通過查詢獲得某個字段的合計值,如果這個值為null將給出一個預設的默認值。如果是NULL, 則取指定值。具體使用格式如下:NVL( string1, replace_with)具體功能如下:如果string1為NULL,則NVL函數(shù)返回replace_with的值,否則返回原來的值。引申一下,此NVL的作用與SQLserver 中的 ISNULL( string1, replace_with) 一樣。具體使用注意事項如下:string1和replace_with必須為同一數(shù)據(jù)類型,除非顯式的使用TO_CHAR函數(shù)。例:NVL(TO_CHAR(numeric_column), "some string") 其中numeric_column代指某個數(shù)字類型的值。例:nvl(yanlei777,0) > 0NVL(yanlei777, 0) 的意思是 如果 yanlei777 是NULL, 則取 0值