sql-server - 为什么我的主查询在子查询返回错误的同时成功运行?
问题描述
select 1/0 as test
查询返回错误“遇到除以零错误”
但是这个工作正常:
select count(*) from (select 1/0 as test) subquery
谁能解释为什么会这样?
解决方案
它可以工作,因为 sql server 不会1/0
从子查询中执行。您只想计算行数,sql server 足够聪明,知道这是多余的附加操作。例如这两个语句不起作用,因为在这些情况下1/0
必须执行。
select count(*),test from (select 1/0 as test) subquery group by test
select test from (select 1/0 as test) subquery
推荐阅读
- java - JUnit 测试黄瓜中的 InitializationError (NoClassFound - IGherkinDialectProvider)
- java - 我将如何在 jsp 页面的动态选择框中显示二维数组的结果
- java - 从 gradle 中删除 play services maps 实现
- swift - 我可以在 Swift 4 中将参数(不是发件人)附加到 uiButton.addTarget
- php - PHP 如何显示和链接实习生会话的所有查看站点?
- android - 拦截器中的 ReentrantLock 死锁
- django - 删除 Django 中的特定行
- sql - 所有标识符的分组依据和计数
- r - 合并异构data.frames
- spring-kafka - 2 kafka集群的spring kafka消费者