sql-server - 如果第一个条件为 FALSE,那么在 SQL Server 中检查第二个条件?
问题描述
在一个where
子句中,如果第一个条件为 FALSE,那么在 SQL Server 中检查第二个条件?
例如
select *
from users
where (condition 1) AND (condition 2)
如果条件 1 为 False,是否会检查条件 2?
解决方案
它是非确定性的。您不能依赖评估顺序。
SQL Server 查询优化器负责解析 T-SQL 查询并根据表大小、索引等创建执行计划。因此,针对相同数据库模式的相同 T-SQL 语句可能会根据数据库内容、配置等不同执行。
查询优化器优先考虑执行速度,并能够并行执行单个 T-SQL 语句。过滤子句的执行极不可能一个接一个地执行。
推荐阅读
- c# - 使用 c# 桌面从 quickbooks 桌面获取发票
- python - 在 Python 中将 JSON 字符串转换为图像
- javascript - window.scroll 在 Internet Explorer 11 中不起作用
- azure - 在 Service Fabric 群集上安装 Application Insights 时出错
- c++ - 在仅输出的 fstream 上调用 sync() 是否有意义?
- python - 在 OpenWRT 构建系统中使用 Python 3
- ios - Xamarin iOS 项目突然出现 200 多个错误(Visual Studio for Windows)
- swift - 使用 Mirror(reflecting:) 时无法符合 Decodable
- docker - 命令告诉容器镜像的操作系统版本
- swift - iOS13 - UIButton 标题颜色仅显示黑色或白色而不是橙色