sql 高級(七)(null 值,isnull()、nvl()、ifnull()、coalesce)

SQL IS NULL函數

        僅僅選取在 "Address" 列中帶有 NULL 值的記錄spa

        select LastName,FirstName,Address FROM Personsit

        where Address is nullast

        結果集:select

        LastName FirstName Addressco

            Adams     John  工作

            Carter         Thomas  background

        提示:請始終使用 IS NULL 來查找 NULL 值。

SQL IS NOT NULL

        使用 IS NOT NULL 操做符:

        select LastName,FirstName,Address FROM Persons

        where Address is not null

        結果集:

            LastName FirstName Address

                Bush          George    Fifth Avenue

SQL  isnull()、nvl()、ifnull() 和 coalesce() 函數

                    P_Id ProductName    UnitPrice UnitsInStock UnitsOnOrder

                        1 computer 699          25                 15

                        2 printer                  365                 36  

                        3 telephone           280                 159                 57

        假如 "UnitsOnOrder" 是可選的,並且能夠包含 NULL 值。

        使用以下 SELECT 語句:

            SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder)

            FROM Products

        在上面的例子中,若是有 "UnitsOnOrder" 值是 NULL,那麼結果是 NULL。

微軟的 ISNULL() 函數用於規定如何處理 NULL 值。

nvl(), ifnull() 和 coalesce() 函數也能夠達到相同的結果。

在這裏,但願 NULL 值爲 0。

下面,若是 "UnitsOnOrder" 是 NULL,則不利於計算,所以若是值是 NULL 則 ISNULL() 返回 0。

SQL Server / MS Access

        SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))

        FROM Products

Oracle

            Oracle 沒有 ISNULL() 函數。能夠使用 nvl() 函數達到相同的結果:

            SELECT ProductName,UnitPrice*(UnitsInStock+nvl(UnitsOnOrder,0))

            FROM Products

MySQL

            MySQL 也擁有相似 isnull() 的函數。不過它的工做方式與微軟的 ISNULL() 函數有點不一樣。

            在 MySQL 中,能夠使用 IFNULL() 函數,就像這樣:

                SELECT ProductName,UnitPrice*(UnitsInStock+ifnull(UnitsOnOrder,0))

                 FROM Products

            或者能夠使用 coalesce()函數,就像這樣:

                SELECT ProductName,UnitPrice*(UnitsInStock+coalesce(UnitsOnOrder,0))

                FROM Products

相關文章
相關標籤/搜索