繁体   English   中英

SQL Server-在子查询中使用列别名

[英]SQL Server - Using a column alias in a subquery

我有以下查询,该查询在MySQL上运行正常,但拒绝在SQL Server上运行:

SELECT table1.someField AS theField, 
       COUNT(table2.someField) / (SELECT COUNT(someField) FROM table1 WHERE someField = theField),
FROM table1 LEFT JOIN table2 ON table1.someField = table2.someField

SQL Server似乎不喜欢子查询中的别名。 有人告诉我我需要使用CTE,但以前从未使用过它们。 这个对吗?

问题很可能是子查询中的混乱

SELECT COUNT(someField) FROM table1 WHERE someField = theField

该条件中的someField将是局部的-但您可以将table1.someField保持不变。

怎么样

SELECT COUNT(t3.someField) FROM table1 t3 WHERE t3.someField = table1.someField 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM