0

変数への値の割り当てと SQL での列の選択を組み合わせる方法はありますか。変数に基づいてテーブル内の列を計算して選択する必要があります。変数の値は、テーブル内の別の列に基づいて変化します。

var @BeginValue テーブルの列: ReducedBy

私の初期開始値は @BeginValue に保存されます。テーブルには reduceBy があります。これは、開始値を減らす必要がある要因です。したがって、選択すると、最初に記録された beginvalue は @BeginValue になり、@EndValue は @BeginValue = @BeginValue - ReducedBy になります。このように、テーブル内のレコードの数だけ続きます。

結果セットは次のようになります: @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 に答える