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

相关文章
相关标签/搜索