SQL Server选择COUNT而不使用聚合函数或分组依据

时间:2010-07-30 05:50:18

标签: sql-server-2005 count

我的情况非常紧张。我在SQL Server 2005上运行SQL查询:

SELECT col1,col2,col3 FROM myTable

当然给出了:

col1 | col2 | col3
------------------
 1   |  a   | i
 2   |  b   | ii

如果可能,我需要添加COUNT个查询,以便返回返回的记录数。我不能使用GROUP BY或聚合函数(在某些非常不灵活的软件上,它是非常边缘情况)。

理想情况下,这样的事情:

SELECT col1,col2,col3,COUNT(NumberOfRows) as NumRows FROM myTable

col1 | col2 | col3| NumRows
---------------------------
 1   |  a   | i   | 2
 2   |  b   | ii  | 2

我意识到这很糟糕。并且效率低下。并反对所有良好做法。但我正处于一个软件的角落,它的架构在1991年被冻结了!

2 个答案:

答案 0 :(得分:2)

Uuh所以事实证明我的同事在提问后30秒回答了答案。

正确的语法是:

SELECT col1,col2,col3,@@ROWCOUNT as NumRows FROM myTable

答案 1 :(得分:1)

看起来使用@@ ROWCOUNT将返回 上一个 查询处理的行数,因此我不确定这是否是有效的解决方案。我认为这是因为在运行查询 后,@@ ROWCOUNT在内部设置 ,因此最好在查询完成后使用。因此,它不会返回由其放置的查询处理的行数。