SQL Server, результат таблицы как «Столбец» или «COUNT (Столбец)» в зависимости от параметра? - PullRequest
1 голос
/ 23 февраля 2010

Вот код T-SQL, который я кодировал, который, как я предполагал, работал, но не работал:

DECLARE @Local nvarchar(20)
SET @Local = 'Yes'

SELECT 
(CASE WHEN @Local = 'Yes' THEN ID ELSE COUNT(ID) END)
FROM myTable

Есть ли что-то, что я делаю неправильно или есть какой-то другой способ сделать это?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 23 февраля 2010
IF ( @Local = 'Yes' )
    SELECT ID FROM MyTable
ELSE
    SELECT COUNT(ID) FROM MyTable
0 голосов
/ 23 февраля 2010

2 запроса принципиально отличаются, поэтому "нет" в том, как вы разместили

Вы можете сделать оба за один звонок

SELECT 
ID
FROM myTable
COMPUTE SUM(ID)

Или используйте @@ ROWCOUNT

Или используйте решение AdaTheDev

...