首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

Server
EN

Stack Overflow用户
提问于 2017-11-17 09:42:37
回答 2查看 36关注 0票数 0
代码语言:javascript
运行
复制
SrNo   TextCol
--------------
NULL   ABC
NULL   ABC
NULL   ASC
NULL   qwe

我想用数字1、2、3、4更新SrNo列,而不更改其他列的顺序。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-17 10:38:13

表是无序的,因此不能依赖“现有序列”。然而,“诀窍”是使用select null,它实际上对行顺序没有任何作用。当它起作用时,你不应该依赖它作为一个永久的解决方案。

代码语言:javascript
运行
复制
WITH cte AS (
        SELECT SrNo, TextCol
            , ROW_NUMBER() OVER (ORDER BY (select NULL)) rn
        FROM yourTable
     )
UPDATE cte
SET SrNo = rn;
票数 0
EN

Stack Overflow用户

发布于 2017-11-17 09:46:06

只有在存在可以提供排序的列的情况下,才有必要使用行号。假设排序是由TextCol列指定的,那么我们可以尝试如下:

代码语言:javascript
运行
复制
WITH cte AS (
    SELECT SrNo, TextCol, ROW_NUMBER() OVER (ORDER BY TextCol) rn
    FROM yourTable
)

UPDATE cte
SET SrNo = rn;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47347527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档