SQLServer中使用ISNULL替换为指定的替换值

打印 上一主题 下一主题

主题 825|帖子 825|积分 2475

ISNULL (Transact-SQL)
实用于:


  • SQL Server
  • Azure SQL 数据库
  • Azure SQL 托管实例
  • Azure Synapse Analytics 分析平台体系 (PDW)
  • Microsoft Fabric 中的 SQL 分析端点
  • Microsoft Fabric 中的堆栈
NULL替换为指定的替换值。
1、语法

  1. ISNULL ( check_expression , replacement_value )
复制代码
2、参数

  1. check_expression
  2. 要检查NULL的表达式。 check_expression 可以是任何类型 。
  3. replacement_value
  4. 如果 check_expression 为 NULL,则返回的表达式 。 replacement_value 必须是可隐式转换为 check_expression 类型的类型 。
复制代码
3、返回类型

  1. 返回与该 check_expression 相同的类型 。 如果文本NULL作为check_expression提供,ISNULL则返回replacement_value的数据类型。 如果文本作为check_expression提供,并且未提供任何replacement_value,ISNULL则返回 int。 NULL
复制代码
4、注解

  1. 如果NULL不是,则返回check_expression的值。 否则,如果类型不同,则会在隐式转换为check_expression类型后返回replacement_value。 如果 replacement_value 长于 check_expression,则可能截断 replacement_value 。
复制代码
5、示例

本文中的 Transact-SQL 代码示例使用 AdventureWorks2022 或 AdventureWorksDW2022 示例数据库
5.1、将 ISNULL 与 AVG 配合使用

以下示例查找全部产物的重量平均值。 它将替换表列中Product全部NULL条目Weight的值50。
  1. USE AdventureWorks2022;
  2. GO
  3. SELECT AVG(ISNULL(Weight, 50)) AS Avg_Weight
  4. FROM Production.Product;
  5. GO
  6. -- 返回执行结果
  7. Avg_Weight
  8. ---------------------------------------
  9. 59.790059
  10. (1 行受影响)
复制代码
5.2、使用 ISNULL

以下示例选择 AdventureWorks2022 中全部特价产物的阐明、扣头百分比、最小量和最大量。 如果特定特殊产物/服务NULL的最大数量为,MaxQty则结果会合所示。0.00
  1. USE AdventureWorks2022;
  2. GO
  3. SELECT Description, DiscountPct, MinQty, ISNULL(MaxQty, 0.00) AS 'Max Quantity'
  4. FROM Sales.SpecialOffer;
  5. GO
  6. -- 返回执行结果
  7. Description                                                  DiscountPct           MinQty      Max Quantity
  8. ------------------------------------------------------------ --------------------- ----------- ------------
  9. No Discount                                                  0.00                  0           0
  10. Volume Discount 11 to 14                                     0.02                  11          14
  11. Volume Discount 15 to 24                                     0.05                  15          24
  12. Volume Discount 25 to 40                                     0.10                  25          40
  13. Volume Discount 41 to 60                                     0.15                  41          60
  14. Volume Discount over 60                                      0.20                  61          0
  15. Mountain-100 Clearance Sale                                  0.35                  0           0
  16. Sport Helmet Discount-2002                                   0.10                  0           0
  17. Road-650 Overstock                                           0.30                  0           0
  18. Mountain Tire Sale                                           0.50                  0           0
  19. Sport Helmet Discount-2003                                   0.15                  0           0
  20. LL Road Frame Sale                                           0.35                  0           0
  21. Touring-3000 Promotion                                       0.15                  0           0
  22. Touring-1000 Promotion                                       0.20                  0           0
  23. Half-Price Pedal Sale                                        0.50                  0           0
  24. Mountain-500 Silver Clearance Sale                           0.40                  0           0
  25. (16 行受影响)
复制代码
以下示例使用ISNULL字符串None替换NULL其Color值
  1. USE AdventureWorks2022;
  2. GO
  3. SELECT ProductID,
  4.     Name,
  5.     ProductNumber,
  6.     ISNULL(Color, 'None') AS Color
  7. FROM Production.Product;
  8. -- 返回执行结果
  9. ProductID   Name                                               ProductNumber             Color
  10. ----------- -------------------------------------------------- ------------------------- ---------------
  11. 1           Adjustable Race                                    AR-5381                   None
  12. 2           Bearing Ball                                       BA-8327                   None
  13. 3           BB Ball Bearing                                    BE-2349                   None
  14. 4           Headset Ball Bearings                              BE-2908                   None
  15. 316         Blade                                              BL-2036                   None
  16. 317         LL Crankarm                                        CA-5965                   Black
  17. 318         ML Crankarm                                        CA-6738                   Black
  18. 319         HL Crankarm                                        CA-7457                   Black
  19. 320         Chainring Bolts                                    CB-2903                   Silver
  20. 321         Chainring Nut                                      CN-6137                   Silver
  21. 322         Chainring                                          CR-7833                   Black
  22. 323         Crown Race                                         CR-9981                   None
复制代码
5.3、在 WHERE 子句中测试NULL

请勿用于 ISNULL 查找 NULL 值。 请改用 IS NULL。 下面的示例查找 weight 列中存在 NULL 的全部产物。 请注意 IS 和 NULL 之间的空格。
  1. USE AdventureWorks2022;
  2. GO
  3. SELECT Name, Weight
  4. FROM Production.Product
  5. WHERE Weight IS NULL;
  6. GO
  7. -- 返回执行结果
  8. Name                                               Weight
  9. -------------------------------------------------- ---------------------------------------
  10. Adjustable Race                                    NULL
  11. Bearing Ball                                       NULL
  12. BB Ball Bearing                                    NULL
  13. Headset Ball Bearings                              NULL
  14. Blade                                              NULL
  15. LL Crankarm                                        NULL
  16. ML Crankarm                                        NULL
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

干翻全岛蛙蛙

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表