Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 获取子查询的计数_Sql Server_Select_Count - Fatal编程技术网

Sql server 获取子查询的计数

Sql server 获取子查询的计数,sql-server,select,count,Sql Server,Select,Count,我希望得到子查询的计数,或者至少是一种绕过它的方法 我有一个存储过程,稍后在其中创建一个临时表,但我需要该临时表中返回的行数 我获取临时表的方法是通过一个带有几个连接的select。有没有办法获取select语句中返回的行数 我有一些类似于: SELECT Book.Title, Book.Year, BookGenre.Genre FROM Book JOIN BookGenre ON Book.BookNum = BookGenre.BookNum WH

我希望得到子查询的计数,或者至少是一种绕过它的方法

我有一个存储过程,稍后在其中创建一个临时表,但我需要该临时表中返回的行数

我获取临时表的方法是通过一个带有几个连接的select。有没有办法获取select语句中返回的行数

我有一些类似于:

SELECT Book.Title,
       Book.Year,
       BookGenre.Genre
  FROM Book
  JOIN BookGenre ON Book.BookNum = BookGenre.BookNum
 WHERE Book.Title IS NOT NULL
在此之前,我需要获取从该查询返回的行数。因此,基本上:

COUNT(SELECT Book.Title,
             Book.Year,
             BookGenre.Genre
        FROM Book
        JOIN BookGenre ON Book.BookNum = BookGenre.BookNum
       WHERE Book.Title IS NOT NULL)

@@RowCount
选择之后,将立即给出返回的行数

您可以获取计数,然后重复查询,或者执行查询并获取计数。如果需要在进一步处理数据之前使用计数,则可以将查询结果定向到临时表或表变量

在某些情况下,运行查询可能会有所帮助,但只保存以后检索完整数据所需的id。你的例子似乎不属于这种情况

完整性:

非规范化是另一种选择。例如,您可以使用触发器在
bookquare
表中维护每种体裁中的图书数量计数

如果查询代价高昂、重复,并且您可以容忍一定程度的陈旧数据,那么维护结果缓存是另一种可能性。例如,网站主页上的前十名列表不需要精确无误。每5分钟运行一次查询可能足以保持货币幻觉


小心避免过早优化。在开始研究优化之前,您应该有一个特定的、可测量的性能问题。

@@RowCount
选择之后,将立即给出返回的行数

您可以获取计数,然后重复查询,或者执行查询并获取计数。如果需要在进一步处理数据之前使用计数,则可以将查询结果定向到临时表或表变量

在某些情况下,运行查询可能会有所帮助,但只保存以后检索完整数据所需的id。你的例子似乎不属于这种情况

完整性:

非规范化是另一种选择。例如,您可以使用触发器在
bookquare
表中维护每种体裁中的图书数量计数

如果查询代价高昂、重复,并且您可以容忍一定程度的陈旧数据,那么维护结果缓存是另一种可能性。例如,网站主页上的前十名列表不需要精确无误。每5分钟运行一次查询可能足以保持货币幻觉


小心避免过早优化。在开始研究优化之前,您应该有一个具体且可测量的性能问题。

发布代码帮助:)抱歉,我添加了一些代码作为示例。发布代码帮助:)抱歉,我添加了一些代码作为示例。