0

有没有办法结合为变量赋值和在sql中选择列。我需要根据变量计算并选择表中的列。变量的值根据表中的另一列而变化。

var @BeginValue 表中的列:ReduceBy

我的初始开始值存储在@BeginValue 中。该表已减少,这是我的开始值应减少的一个因素。因此,当我选择时,第一个记录的 beginvalue 将是 @BeginValue 并且 @EndValue 应该是 @BeginValue = @BeginValue - reduceBy。它像这样继续下去,是我表中记录数的倍数。

结果集必须是这样的:@Begin = 10

Begin End ReducedBy 
10     8    2
 8     6    2
 6     5    1

有没有一种方法可以在不使用游标或多个更新语句的情况下实现这一点。

4

2 回答 2

1

您不能在返回结果集的查询中分配。您可以获得的最接近的是将结果存储在表变量中。然后您可以对该表进行计算,并将其作为结果集返回:

-- Store results in table variable
declare @tbl table (id int, col1 int, ...)

insert  @tbl
        (id, col1, ...)
select  id
,       col1
,       ...
from    ... your query here ...

-- Assign variable
select  @YourVariable = ... your computation here ...
from    @tbl

-- Return result set
select  *
from    @tbl
于 2012-09-14T09:36:43.030 回答
0

如果你的问题是

我可不可以做..

SELECT @a = field, field2 from table

并获得一个结果集并设置@a 的值?

那么答案是否定的,不是在一个单一的声明中。

于 2012-09-14T09:35:47.447 回答