使用以下查询更新列?

时间:2019-09-23 23:19:23

标签: sql sql-server

如何编写此查询以基于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

1 个答案:

答案 0 :(得分:2)

正如所评论的那样,除了这些之外,您的查询看起来还不错:

  • ORDER BY子句没有任何意义; UPDATE查询不会返回任何记录,因此排序超出范围

  • 出于相同的原因,您不必为更新的列添加别名

考虑:

UPDATE Table
SET Form = CASE 
    WHEN (cnt - rownum < cnt % NumberUp) THEN 0 
    ELSE  floor((rowNum - 1) / numberUp) + 1 
END
相关问题