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