sql-server 基于列的SQL自动增量值

t30tvxxf  于 2022-10-31  发布在  其他
关注(0)|答案(2)|浏览(144)

我遇到这样一种情况:我希望在新创建列中为相同的业务代码提供相同的自动增量值,我已在下面尝试过,但没有得到预期的结果

select *
    , rank() over (partition by business_code order by ID)
from table

我在所有业务代码ID列中得到相同值,这不是所需结果
我的输出

预期输出

wztqucjr

wztqucjr1#

你可以试试下面的SQL语句:

SELECT id
      ,business_code
      ,DENSE_RANK() OVER (ORDER BY m) NewColumn
FROM (SELECT id
            ,business_code
            ,MIN(id) OVER (PARTITION BY business_code) m
      FROM myTable) d

解释其工作原理:由于提供的数据,我想先得到每个business_code的最小id。然后按值对最小id进行排序。

qv7cva1a

qv7cva1a2#

使用此

select row_number() over (order by (select null)), a.*
from Table a;

相关问题