sql – isnull vs是null
发布时间:2020-12-12 07:06:02 所属栏目:MsSql教程 来源:网络整理
导读:我注意到在工作中有一些查询,而SO则使用以下形式的限制: isnull(name,'') '' 有没有一个特别的原因,为什么人们这样做,而不是更简洁 name is not null 这是遗产还是性能问题? 解决方法 where isnull(name,'') '' 相当于 where name is not null and name
我注意到在工作中有一些查询,而SO则使用以下形式的限制:
isnull(name,'') <> '' 有没有一个特别的原因,为什么人们这样做,而不是更简洁 name is not null 这是遗产还是性能问题? 解决方法where isnull(name,'') <> '' 相当于 where name is not null and name <> '' 这反过来相当于 where name <> '' (如果名称为NULL,最终表达式将评估为未知,并且该行不返回) 使用ISNULL模式将导致扫描并且效率较低,如下面的测试所示。 SELECT ca.[name],[number],[type],[low],[high],[status] INTO TestTable FROM [master].[dbo].[spt_values] CROSS APPLY (SELECT [name] UNION ALL SELECT '' UNION ALL SELECT NULL) ca CREATE NONCLUSTERED INDEX IX_TestTable ON dbo.TestTable(name) GO SELECT name FROM TestTable WHERE isnull(name,'') <> '' SELECT name FROM TestTable WHERE name is not null and name <> '' /*Can be simplified to just WHERE name <> '' */ 哪个应该给你你需要的执行计划。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |