zsyzhou 发表于 2018-10-23 08:32:50

sql 中IsNull函数

  介绍IsNull函数语法,注释,返回类型
  语法:
  ISNULL ( check_expression , replacement_value )
  参数:

[*]  check_expression
[*]  将被检查是否为 NULL 的表达式。check_expression 可以为任何类型。
[*]  replacement_value
[*]  当 check_expression 为 NULL 时要返回的表达式。replacement_value 必须是可以隐式转换为 check_expresssion 类型的类型。
  返回类型:
  返回与 check_expression 相同的类型。      如果文字 NULL 作为 check_expression 提供,则返回 replacement_value 的数据类型。      如果文字 NULL 作为 check_expression 提供并且未提供 replacement_value,则返回 int。
  注释:
  如果 check_expression 不为 NULL,则返回它的值;否则,在将 replacement_value 隐式转换为 check_expression 的类型(如果这两个类型不同)后,则返回前者。      如果 replacement_value 比 check_expression 长,则可以截断 replacement_value。
  示例
A.将 ISNULL 与 AVG 一起使用
  以下示例查找所有产品的重量平均值。      它用值 50替换 Product表的 Weight列中的所有 NULL 项。
USE AdventureWorks2012;  
GO
  
SELECT AVG(ISNULL(Weight, 50))
  
FROM Production.Product;
  
GO
  下面是结果集:
  --------------------------
  59.79
  (1 row(s) affected)
B.使用 ISNULL
  以下示例选择 AdventureWorks2012中所有特价产品的说明、折扣百分比、最小量和最大量。      如果某个特殊特价产品的最大量为 NULL,则结果集中显示的 MaxQty为 0.00。
USE AdventureWorks2012;  
GO
  
SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
  
FROM Sales.SpecialOffer;
  
GO
  下面是结果集:
  Description       DiscountPct       MinQty      Max Quantity
  ---------------   -------------   --------    ---------------
  No Discount       0.00            0         0
  Volume Discount   0.02            11          14
  Volume Discount   0.05            15          4
  Volume Discount   0.10            25          0
  Volume Discount   0.15            41          0
  Volume Discount   0.20            61          0
  Mountain-100 Cl   0.35            0         0
  Sport Helmet Di   0.10            0         0
  Road-650 Overst   0.30            0         0
  Mountain Tire S   0.50            0         0
  Sport Helmet Di   0.15            0         0
  LL Road Frame S   0.35            0         0
  Touring-3000 Pr   0.15            0         0
  Touring-1000 Pr   0.20            0         0
  Half-Price Peda   0.50            0         0
  Mountain-500 Si   0.40            0         0
  (16 row(s) affected)
C.测试 WHERE 子句中的 NULL
  请勿使用 ISNULL 查找 NULL 值。      而应使用 IS NULL。      下面的示例查找 weight 列中存在 NULL的所有产品。      请注意 IS和 NULL之间的空格。
USE AdventureWorks2012;  
GO
  
SELECT Name, Weight
  
FROM Production.Product
  
WHERE Weight IS NULL;
  
GO
  转自:https://msdn.microsoft.com/zh-cn/en-zh/library/ms184325.aspx


页: [1]
查看完整版本: sql 中IsNull函数