我想在满足条件下更新列值。我希望值为1,2,3,4,5,...
我尝试了这个查询,但它的行为方式很奇怪。我得到的值从2
开始,即2,3,4,5,..
declare @id int;
set @id = 0;
UPDATE table
SET id = @id + 1, @id = @id + 1
WHERE col4 = 100
AND col5 = 500
AND col3 = 2
答案 0 :(得分:4)
您似乎想要枚举符合WHERE
子句中指定条件的记录。我建议使用CTE
和ROW_NUMBER
:
;WITH ToUpdate AS (
SELECT id,
ROW_NUMBER() OVER (ORDER BY col3) AS rn
FROM mytable
WHERE col4=100 AND col5=500 AND col3=2
)
UPDATE ToUpdate
SET id = rn
答案 1 :(得分:0)
试试这个 -
Declare @id int;
Set @id=1;
UPDATE table
SET @id = id = @id + 1
WHERE
(col4=100 AND col5=500 AND col3=2)