为什么我不能在表中使用 COUNT?
SELECT COUNT(*) FROM
(
(SELECT * FROM task.tableA EXCEPT SELECT * FROM task.tableB)
UNION
(SELECT * FROM task.tableB EXCEPT SELECT * FROM task.tableA)
)
最佳答案
这种类型的查询称为内联 View (派生表)。内联 View 是另一个 SELECT 语句的 FROM 子句中的 SELECT 语句。
好处:
我们不需要创建临时表。这可以防止数据库拥有太多对象,这是一件好事,因为数据库中的每个附加对象都需要花费资源来管理。
我们可以使用单个 SQL 查询来完成我们想要的任务。
使用表名“temp”执行查询,如下所示
SELECT COUNT(*)
FROM
(
(SELECT * FROM task.tableA EXCEPT SELECT * FROM task.tableB)
UNION
(SELECT * FROM task.tableB EXCEPT SELECT * FROM task.tableA)
) temp;
关于sql-server-2008 - 使用 EXCEPT 和 UNION 时如何获取 COUNT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35356419/