表中的自动增量列基于另一个列值 [英] Auto increment column in table based on another column value

查看:60
本文介绍了表中的自动增量列基于另一个列值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要这样的结果:



I need result like this:

ChNo====|=====Row Column
  11     |     10
  12     |     14
  13     |     16
  15     |     18
  17     |     19
  20     |     21







行列=>将根据ChNo列生成Num(存在)或不)






Row Column =>Will Generate Num based on ChNo Column (exists or not)

if not exists(select * from TableNameA where ChNo = 10)





如果TableNameA(ChNo)列中不存在给定的数字,我需要从10开始自动递增(行列)。



数字11存在于ChNo列中,所以我想增加直到它在该ChNo列中不存在。



请给我一个解决方案

谢谢。



if the given number not exists in the TableNameA(ChNo) column, i need to Auto Increment (Row Column) from 10.

The num 11 exists in ChNo Column, so i want to increment until it doesn't exists in that ChNo column.

Please give me a solution
Thanks.

推荐答案

您似乎要做的是使用SQL找到序列中的间隙。



如果我将数据复制为
What you appear to be trying to do is "find a gap in a sequence" using SQL.

If I replicate your data as
create table temp
(
    ChNo int
)

insert into temp values (11),(12),(13),(15), (17),(20)



以下查询将返回


The following query will return

14<br />

SELECT  TOP 1 ChNo + 1
FROM    temp mo
WHERE   NOT EXISTS
        (
            SELECT  NULL
            FROM    temp mi
            WHERE   mi.ChNo = mo.ChNo + 1
        )
ORDER BY
        ChNo



根据接受的答案改编为这篇文章 [ ^ ]

其他解决方案将在这里讨论 [ ^ ]


这篇关于表中的自动增量列基于另一个列值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆