ISNULL (Transact-SQL)
实用于:
- SQL Server
- Azure SQL 数据库
- Azure SQL 托管实例
- Azure Synapse Analytics 分析平台体系 (PDW)
- Microsoft Fabric 中的 SQL 分析端点
- Microsoft Fabric 中的堆栈
NULL替换为指定的替换值。
1、语法
- ISNULL ( check_expression , replacement_value )
复制代码 2、参数
- check_expression
- 要检查NULL的表达式。 check_expression 可以是任何类型 。
- replacement_value
- 如果 check_expression 为 NULL,则返回的表达式 。 replacement_value 必须是可隐式转换为 check_expression 类型的类型 。
复制代码 3、返回类型
- 返回与该 check_expression 相同的类型 。 如果文本NULL作为check_expression提供,ISNULL则返回replacement_value的数据类型。 如果文本作为check_expression提供,并且未提供任何replacement_value,ISNULL则返回 int。 NULL
复制代码 4、注解
- 如果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。
- USE AdventureWorks2022;
- GO
- SELECT AVG(ISNULL(Weight, 50)) AS Avg_Weight
- FROM Production.Product;
- GO
- -- 返回执行结果
- Avg_Weight
- ---------------------------------------
- 59.790059
- (1 行受影响)
复制代码 5.2、使用 ISNULL
以下示例选择 AdventureWorks2022 中全部特价产物的阐明、扣头百分比、最小量和最大量。 如果特定特殊产物/服务NULL的最大数量为,MaxQty则结果会合所示。0.00
- USE AdventureWorks2022;
- 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 11 to 14 0.02 11 14
- Volume Discount 15 to 24 0.05 15 24
- Volume Discount 25 to 40 0.10 25 40
- Volume Discount 41 to 60 0.15 41 60
- Volume Discount over 60 0.20 61 0
- Mountain-100 Clearance Sale 0.35 0 0
- Sport Helmet Discount-2002 0.10 0 0
- Road-650 Overstock 0.30 0 0
- Mountain Tire Sale 0.50 0 0
- Sport Helmet Discount-2003 0.15 0 0
- LL Road Frame Sale 0.35 0 0
- Touring-3000 Promotion 0.15 0 0
- Touring-1000 Promotion 0.20 0 0
- Half-Price Pedal Sale 0.50 0 0
- Mountain-500 Silver Clearance Sale 0.40 0 0
- (16 行受影响)
复制代码 以下示例使用ISNULL字符串None替换NULL其Color值
- USE AdventureWorks2022;
- GO
- SELECT ProductID,
- Name,
- ProductNumber,
- ISNULL(Color, 'None') AS Color
- FROM Production.Product;
- -- 返回执行结果
- ProductID Name ProductNumber Color
- ----------- -------------------------------------------------- ------------------------- ---------------
- 1 Adjustable Race AR-5381 None
- 2 Bearing Ball BA-8327 None
- 3 BB Ball Bearing BE-2349 None
- 4 Headset Ball Bearings BE-2908 None
- 316 Blade BL-2036 None
- 317 LL Crankarm CA-5965 Black
- 318 ML Crankarm CA-6738 Black
- 319 HL Crankarm CA-7457 Black
- 320 Chainring Bolts CB-2903 Silver
- 321 Chainring Nut CN-6137 Silver
- 322 Chainring CR-7833 Black
- 323 Crown Race CR-9981 None
复制代码 5.3、在 WHERE 子句中测试NULL
请勿用于 ISNULL 查找 NULL 值。 请改用 IS NULL。 下面的示例查找 weight 列中存在 NULL 的全部产物。 请注意 IS 和 NULL 之间的空格。
- USE AdventureWorks2022;
- GO
- SELECT Name, Weight
- FROM Production.Product
- WHERE Weight IS NULL;
- GO
- -- 返回执行结果
- Name Weight
- -------------------------------------------------- ---------------------------------------
- Adjustable Race NULL
- Bearing Ball NULL
- BB Ball Bearing NULL
- Headset Ball Bearings NULL
- Blade NULL
- LL Crankarm NULL
- ML Crankarm NULL
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |