如何编写此查询以基于case语句更新列?
UPDATE Table
SET Form = CASE
WHEN (cnt - rownum < cnt % NumberUp)
THEN 0
ELSE floor((rowNum - 1) / numberUp) + 1
END AS form
ORDER BY Quantity
答案 0 :(得分:2)
正如所评论的那样,除了这些之外,您的查询看起来还不错:
ORDER BY
子句没有任何意义; UPDATE
查询不会返回任何记录,因此排序超出范围
出于相同的原因,您不必为更新的列添加别名
考虑:
UPDATE Table
SET Form = CASE
WHEN (cnt - rownum < cnt % NumberUp) THEN 0
ELSE floor((rowNum - 1) / numberUp) + 1
END