SQL Server子查询返回无记录

时间:2016-09-20 20:57:47

标签: sql-server subquery

我应该是一个非常简单的子查询:

DECLARE @count TABLE (count1 INT, count2 INT)

SELECT
    (SELECT COUNT(*) FROM Bird) AS count1,
    (SELECT COUNT(*) FROM Fish) AS count2
FROM @count
  • 当我跑SELECT COUNT(*) FROM Bird时,我回来了10。
  • 当我跑SELECT COUNT(*) FROM Fish时,我得到5回复。
  • 当我运行上述查询时,我返回零记录。

我错过了什么吗?我已经看过多个不同的教程,而且他们都说完全正是我正在做的事情。

2 个答案:

答案 0 :(得分:2)

我假设您正在尝试将两个计数插入声明的表中。如果这是真的,那么您错过了INSERT INTO,并且您不需要一个FROM @count ...

在这个例子中,我使用两个count(在其他表上)将一行插入@count,您可以在最后一步中选择:

declare @count table (count1 int, count2 int);

INSERT INTO @count
select (SELECT COUNT(*) FROM sys.all_columns)
      ,(SELECT COUNT(*) FROM sys.tables);

SELECT * FROM @count;

答案 1 :(得分:0)

由于您从@count表中选择了没有任何记录的记录,因此您将始终获得无记录。顺便问一下,你想要达到什么目标?