我需要在SQL Server中多个表计算行2008年我这样做:
select count(*) from (select * from tbl1 union all select * from tbl2)
但它给我的语法不正确的错误附近)。 为什么?
PS。 表的实际数量可以是2个以上。
我需要在SQL Server中多个表计算行2008年我这样做:
select count(*) from (select * from tbl1 union all select * from tbl2)
但它给我的语法不正确的错误附近)。 为什么?
PS。 表的实际数量可以是2个以上。
如果你对你的表列数不同的尝试这种方式
SELECT count(*)
FROM (
SELECT NULL as columnName
FROM tbl1
UNION ALL
SELECT NULL
FROM tbl2
) T
尝试这个:
你必须提供一个名称派生表
select count(*) from
(select * from tbl1 union all select * from tbl2)a
我认为你必须别名SELECT
在FROM
子句:
select count(*)
from
(
select * from tbl1
union all
select * from tbl2
) AS SUB
您还需要确保*
两个表中tbl1
和tbl2
返回完全相同的列数,他们必须在他们的类型相匹配。
我不喜欢做的计数之前做工会。 它给人的SQL优化器的opportunithy选择做更多的工作。
AlexK的(删除)解决方案是好的。 你也可以这样做:
select (select count(*) from tbl1) + (select count(*) from tbl2) as cnt