sql установить переменную с помощью COUNT - PullRequest
41 голосов
/ 22 мая 2011

Я пытаюсь сделать простой запрос к моему серверу и хочу, чтобы результат был сохранен в переменной @ times.

DECLARE @times int

SET @times = SELECT COUNT(DidWin)as "I Win"
FROM thetable
WHERE DidWin = 1 AND Playername='Me'

IntelliSense сообщает Wrong syntax near Select

Ответы [ 4 ]

81 голосов
/ 22 мая 2011

Вам просто нужны круглые скобки вокруг вашего выбора:

SET @times = (SELECT COUNT(DidWin) FROM ...)

Или вы можете сделать это так:

SELECT @times = COUNT(DidWin) FROM ...
8 голосов
/ 22 мая 2011

Вы можете выбрать непосредственно в переменную вместо использования set:

DECLARE @times int

SELECT @times = COUNT(DidWin)
FROM thetable
WHERE DidWin = 1 AND Playername='Me'

Если вам нужно установить несколько переменных, вы можете сделать это из одного и того же выбора (пример немного надуманный):

DECLARE @wins int, @losses int

SELECT @wins = SUM(DidWin), @losses = SUM(DidLose)
FROM thetable
WHERE Playername='Me'

Если вы неравнодушны к использованию set, вы можете использовать скобки:

DECLARE @wins int, @losses int

SET (@wins, @losses) = (SELECT SUM(DidWin), SUM(DidLose)
FROM thetable
WHERE Playername='Me');
1 голос
/ 22 мая 2011

Вы хотите:

DECLARE @times int

SELECT @times =  COUNT(DidWin)
FROM thetable
WHERE DidWin = 1 AND Playername='Me'

Вы также не нуждаетесь в предложении «as».

0 голосов
/ 22 мая 2011

Вы можете использовать SELECT как lambacck сказал или добавьте скобки:

SET @times = (SELECT COUNT(DidWin)as "I Win"
FROM thetable
WHERE DidWin = 1 AND Playername='Me');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...