我必须将字符串值增加1,例如默认值为AEC00001,第二个值为AEC00002,依此类推,如何通过使用c#或sql查询来实现此目的。
答案 0 :(得分:1)
在您的应用程序中,它看起来像是一个糟糕的设计。可能你应该分别存储号码和前缀。
但是无论如何,假设你的前缀总是“AEC”并且数字大小是五位小数 - 你可以增加你的值(这是c#解决方案,因为你没有指定你是否更喜欢sql解决方案到c#one):
string s = "AEC00001";
string s1 = "AEC" +
(Convert.ToInt32(s.Replace("AEC", "")) + 1)
.ToString()
.PadLeft(5, '0');
答案 1 :(得分:0)
你不能在INT格式的数字之前存储0000,但你可以这样做:
SELECT RIGHT('0000' + CAST(2 AS varchar(5)) , 5)
OR
SELECT '0000' + CAST(2 AS varchar(5))
答案 2 :(得分:0)
这里我使用了计算列,它自动将其他列和con-cat带到它
declare @a table ( a as 'AEC'+b, b nvarchar(max))
insert into @a SELECT RIGHT('00000'+CAST(1 AS VARCHAR(5)),5)union select RIGHT('00000'+CAST(2 AS VARCHAR(5)),5) union select RIGHT('00000'+CAST(3 AS VARCHAR(5)),5)
select * from @a
答案 3 :(得分:0)
var originalValue = "AEC00002";
// Get the numeric part (00002)
var stringValue = Regex.Match(originalValue, @"\d+").Value;
// Convert to int
var intValue = Int32.Parse(stringValue);
// Increase
intValue++;
// Convert back to string
originalValue = "AEC" + intValue.ToString("D5");
结果:AEC00003
答案 4 :(得分:0)
您可以使用计算列:
计算列是表示同一表中其他列可以使用的数据的列。该表达式可以是非计算列或任何函数和常量。它不能是子查询。在这里,计算列被标记为“持久”,因此在引用列中进行的任何更新都将在计算列中自动同步。
有关更多信息,请参见本文:Auto Incremented Column With VARCHAR and NVARCHAR Data Type in SQL
答案 5 :(得分:0)
在JavaScript中使用以下功能
function autoIncrementCustomId(lastRecordId){
let increasedNum = Number(lastRecordId.replace('ABC','')) + 1;
let kmsStr = lastRecordId.substr(0,3);
for(let i=0; i< 6 - increasedNum.toString().length; i++){
kmsStr = kmsStr+'0';
}
kmsStr = kmsStr + increasedNum.toString();
console.log(kmsStr);
}
autoIncrementCustomId('ABC009999')