select a.id, a.gamePassport, a.name, a.money, a.chips, (select count(b.id) from Extension as b where b.aId = a.userId) as num, (select c.type from PersonnelType as c where c.id = a.typeId) as type, a.userId from Apply as a where 1=1 and num > 5这个sql语句...会报错列明num无效、我去掉最后的and num > 5,返回的是正确的。 难道sqlserver的子查询不能当做查询条件吗?
你第一次查询的时候将子查询定义字段为num,但是在后面不能引用它,表apply并没有这个字段,所以不能解析
例如
select 1 as num from dual where num=1;
error
但是
select * from (select 1 as num from dual ) a where num=1;
正常运行,这时候你已经定义了一个新的表结构,包含了num字段,就可以解析了
不知道讲的清楚不
######恩。讲的很清楚,我试了下。。ok了。。多谢。######你把查询的num用你上面的查询语句替换试试
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。