このクエリはどういう意味ですか?
@numberx = @numberx -1
UPDATE th
SET @numberX= numberY= @numberX + 1
FROM Table1 th
INNER JOIN Table2 td ON th.Id = td.idth
WHERE td.anything = @anything
3 行目、この「二重の平等」とは何ですか? そして、UPDATE のこの「from」と「inner」とは何ですか?
このクエリはどういう意味ですか?
@numberx = @numberx -1
UPDATE th
SET @numberX= numberY= @numberX + 1
FROM Table1 th
INNER JOIN Table2 td ON th.Id = td.idth
WHERE td.anything = @anything
3 行目、この「二重の平等」とは何ですか? そして、UPDATE のこの「from」と「inner」とは何ですか?
Table1
これは、 の対応する行が列にTable2
特定の値を持つ各行に連続した番号を割り当てるための複数のテーブル更新ですanything
。
一致する行ごとに、列numberY
を の値に設定します@numberX + 1
。また、その値を に再割り当てし@numberX
、@numberX
行ごとにインクリメントします。
これは「風変わりな更新」として知られています。これは、現在の合計を生成するための文書化されておらず、保証されていないアプローチです。2012 年SUM() OVER (ORDER BY ...)
には、代わりに使用する必要があります。