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

SQL IS NULL

        仅仅选取在 "Address" 列中带有 NULL 值的记录

        select LastName,FirstName,Address FROM Persons

        where Address is null

        结果集:

        LastName FirstName Address

            Adams     John  

            Carter         Thomas  

        提示:请始终使用 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


你可能感兴趣的:(sql 高级(七)(null 值,isnull()、nvl()、ifnull()、coalesce))