val*_*imo 19 sql-server variables select
如何设置MS Sql选择变量,想法如下:
Declare @var int
SET @var = 0;
Select (if(idid = @var) then sum+1 else sum-1) AS Sum,
set @var = id
FROM table
Run Code Online (Sandbox Code Playgroud)
根据评论进行编辑.
DECLARE @T TABLE
(
ID INT PRIMARY KEY,
IDID INT,
SUMM INT
)
INSERT INTO @T
SELECT 1,1,4 UNION ALL
SELECT 2,1,5 UNION ALL
SELECT 3,2,6 UNION ALL
SELECT 4,2,7 UNION ALL
SELECT 5,3,8
Run Code Online (Sandbox Code Playgroud)
在选择结果我需要:
ID IDID SUMM
-- ---- ----
1 1 4
2 1 0
3 2 6
4 2 0
5 3 8
Run Code Online (Sandbox Code Playgroud)
Ken*_*enL 21
这是你想要做的吗?
Declare @var int, @id int
SET @var = 0
SELECT @id = id FROM Table t
if(@id = @var)
BEGIN
SET @var = @var + 1
END
ELSE
BEGIN
SET @var = @var - 1
END
print @var
Run Code Online (Sandbox Code Playgroud)
只需使用SELECT.
例如
SELECT @myValue = MyField FROM MyTable WHERE ....
Run Code Online (Sandbox Code Playgroud)
虽然像其他人一样,我并不真正理解,但下面的查询会产生原始帖子中指定的输出(反过来,它是从您的评论中派生出来的).这需要SQL Server 2005或更高版本.
WITH cte AS (
SELECT
ID,
IDID,
SUMM,
RowNum = ROW_NUMBER() OVER (PARTITION BY IDID ORDER BY ID)
FROM @T
)
SELECT
ID,
IDID,
SUMM = CASE RowNum WHEN 1 THEN SUMM ELSE 0 END
FROM cte
Run Code Online (Sandbox Code Playgroud)
基本上,SUMM输出列包含SUMM原始表,如果这是第一次出现的IDIDorder by ID,否则列包含0.
不确定它与你所追求的有多远,但也许它可以帮助你更准确地解释你的问题.