6
在仅使用文字值的WHERE子句中替换ISNULL()的不同方法有哪些?
这不是关于: 这不是接受用户输入或使用变量的全部查询的问题。 这是严格,对查询ISNULL()中使用WHERE条款,以取代NULL与金丝雀值值进行比较的谓语,而不同的方式来重写这些查询以优化搜索在SQL Server中。 你为什么不坐在那儿? 我们的示例查询针对SQL Server 2016上Stack Overflow数据库的本地副本,并查找NULL年龄小于或小于18的用户。 SELECT COUNT(*) FROM dbo.Users AS u WHERE ISNULL(u.Age, 17) < 18; 查询计划显示对相当周到的非聚集索引的扫描。 扫描操作符显示(由于在SQL Server的最新版本中对实际执行计划XML的添加),我们读取了每一个臭行。 总体而言,我们进行9157次读取,并占用大约半秒的CPU时间: Table 'Users'. Scan count 1, logical reads 9157, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0. …
55
sql-server