Como configurar a variável no MS SQL select
Como posso definir no MS SQL variáveis de selecção, a ideia parece-se com isto:
Declare @var int
SET @var = 0;
Select (if(idid = @var) then sum+1 else sum-1) AS Sum,
set @var = id
FROM table
edite com base em comentários.
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
no resultado select preciso:
ID IDID SUMM
-- ---- ----
1 1 4
2 1 0
3 2 6
4 2 0
5 3 8
19
Author: Martin Smith, 2011-05-27
3 answers
É isto que estás a tentar fazer?
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
20
Author: KenL, 2011-05-27 12:23:01
Basta usar o SELECT.
Por exemplo
SELECT @myValue = MyField FROM MyTable WHERE ....
5
Author: Paul Alan Taylor, 2011-05-27 12:15:03
Embora, como outros, eu realmente não entendo a idéia, a consulta abaixo produz a saída como especificado no post original (que, por sua vez, foi derivado de seu comentário). isto requer SQL Server 2005 ou superior .
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
Basicamente, a coluna de saída SUMM
contém SUMM
da tabela original se esta for a primeira ocorrência de IDID
como ordenado por ID
, caso contrário a coluna contém 0
.
5
Author: Andriy M, 2011-05-27 15:42:12