首页 > 解决方案 > 为什么我的主查询在子查询返回错误的同时成功运行?

问题描述

select 1/0 as test查询返回错误“遇到除以零错误”

但是这个工作正常: select count(*) from (select 1/0 as test) subquery

谁能解释为什么会这样?

标签: sql-servertsql

解决方案


它可以工作,因为 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

推荐阅读