有没有办法将值分配给变量和选择sql中的列。我需要根据变量计算并选择表中的列。变量的值根据表中的另一列而变化。
var @BeginValue 表格中的列:ReducedBy
我的初始开始值存储在@BeginValue中。该表已经减少了,这是我的开始值应该减少的一个因素。因此,当我选择时,第一个记录的beginvalue将是@BeginValue而@EndValue应该是@BeginValue = @BeginValue - reducedBy。它像这样继续,就像我表中的记录数一样多。
结果集必须如下: @Begin = 10
Begin End ReducedBy
10 8 2
8 6 2
6 5 1
有没有办法可以在不使用游标或多个更新语句的情况下实现此目的。
答案 0 :(得分: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
答案 1 :(得分:0)
如果你的问题是
我可以吗...
SELECT @a = field, field2 from table
并获取结果集并设置@a的值
然后答案是否定的,而不是单一陈述。