Reputation: 121
I need to generate 7 digit code(Alternate ID) for my existing customers. For example. This my existing Customer Table structure
ID Name Address City AlternateID
101 Test1 NO 4,.. LA 0000001
102 Test2 NO 3,.. TA 0000002
We have to run this script on a daily basis. Last number stored in a different table. Next day start from the Last number stored in Table.
(Ex. 1st day added 30 customers means "0000030"
2nd day added 10 customers means "0000040")
I want to know the query on how to decrease "0" when digits of the number increased
Like - Single-Digit number "0000001"
- Double-Digit number "0000010"
- Triple-Digit number "0000100"
so on.
Upvotes: 0
Views: 200
Reputation: 1271151
You can use:
update t
set alternateid = format(row_number() over (order by id) + ot.max_alternateid, '0000000')
from t cross join
othertable ot
where alternateid is null;
Upvotes: 1
Reputation: 50173
You can do :
select t.*,
right(concat('0000000', row_number() over (order by id)), 7) as AlternateID
from table t;
Upvotes: 3