sql使用COUNT设置变量

时间:2011-05-22 14:12:33

标签: sql-server tsql

我正在尝试对我的服务器进行简单查询,并希望将结果存储在变量@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

5 个答案:

答案 0 :(得分:80)

您只需要围绕您的选择括​​号:

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

或者你可以这样做:

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

答案 1 :(得分:8)

您可以直接选择变量而不是使用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');

答案 2 :(得分:1)

你想:

DECLARE @times int

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

您也不需要'as'子句。

答案 3 :(得分:0)

您可以使用SELECT作为 lambacck 表示 或添加括号:

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

答案 4 :(得分:-1)

如果您需要使用列名“c”打印结果,或者使用“c”列名在代码中读取结果:

DECLARE @c int;
SELECT c = count(*) from '%Table%' WHERE '%condition%'