SrNo TextCol
--------------
NULL ABC
NULL ABC
NULL ASC
NULL qwe
我想用数字1、2、3、4更新SrNo
列,而不更改其他列的顺序。
发布于 2017-11-17 10:38:13
表是无序的,因此不能依赖“现有序列”。然而,“诀窍”是使用select null
,它实际上对行顺序没有任何作用。当它起作用时,你不应该依赖它作为一个永久的解决方案。
WITH cte AS (
SELECT SrNo, TextCol
, ROW_NUMBER() OVER (ORDER BY (select NULL)) rn
FROM yourTable
)
UPDATE cte
SET SrNo = rn;
发布于 2017-11-17 09:46:06
只有在存在可以提供排序的列的情况下,才有必要使用行号。假设排序是由TextCol
列指定的,那么我们可以尝试如下:
WITH cte AS (
SELECT SrNo, TextCol, ROW_NUMBER() OVER (ORDER BY TextCol) rn
FROM yourTable
)
UPDATE cte
SET SrNo = rn;
https://stackoverflow.com/questions/47347527
复制相似问题