SQL Server Выберите COUNT без использования агрегатной функции или группировки по - PullRequest
1 голос
/ 30 июля 2010

Я нахожусь в очень, очень трудной ситуации здесь. У меня есть SQL-запрос на SQL Server 2005:

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 ]

2 голосов
/ 30 июля 2010

Ух, так получается, что мой коллега вернулся с ответом через 30 секунд после того, как задал вопрос.

Правильный синтаксис:

SELECT col1,col2,col3,@@ROWCOUNT as NumRows FROM myTable
1 голос
/ 22 сентября 2014

Похоже, использование @@ ROWCOUNT вернет количество строк, обработанных предыдущим запросом, поэтому я не уверен, что это правильное решение.Я думаю, это потому, что @@ ROWCOUNT внутренне установлен после запроса, поэтому лучше всего его использовать после того, как запрос уже завершен.Поэтому он не будет возвращать количество строк, обработанных запросом, в котором он размещен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...