我有一个表tbl_login
,我想我的列ID是自动增量和字母也。请帮帮我。提前致谢。如何按字母顺序实现自动增量列值?
ID Name Pass
101A Mohan 1234
102B Madan 4321
103C Ram 12334
我有一个表tbl_login
,我想我的列ID是自动增量和字母也。请帮帮我。提前致谢。如何按字母顺序实现自动增量列值?
ID Name Pass
101A Mohan 1234
102B Madan 4321
103C Ram 12334
很不错的问题数值。
I)可高达多少位?像10000 1,00,000或更多
ii)您应该抛出多一点例子来生成该ID从101开始随机扔.specially从4位数和少数几个例子从5位数字。 3)你将如何实现它。你会插入单行还是插入批量行。一旦需求清晰,实施SCRIPT可以根据需求进行优化和改变。
IV)测试我的script.First彻底从101之间的任意数字测试,以921
只要改变@input的价值
DECLARE @Input INT = 127--change here
DECLARE @Output VARCHAR(10) = ''
,@TempOutput VARCHAR(10) = ''
DECLARE @Base INT = 100
,@z INT = 26
,@Rem INT
DECLARE @Tempinput INT = @Input
WHILE (
@Tempinput > 0
AND @input > @Base + @z
)
BEGIN
SET @TempOutput = ''
IF (@Tempinput > @Base)
BEGIN
SET @Rem = @Tempinput % @Base
END
IF (
(@Rem % @z) = 0
AND (@Rem/@z) > 1
)
BEGIN
SET @Tempinput = (@Rem/@z) - 1
SET @Rem = @Rem % @z
PRINT '23'
END
ELSE
BEGIN
IF (@Rem > @z)
BEGIN
SET @Tempinput = @Rem/@z
SET @Rem = @Rem % @z
PRINT @Tempinput
END
ELSE
BEGIN
SET @Rem = @Tempinput % @z
SET @Tempinput = @Tempinput/@z
END
END
IF (
@Rem > 0
AND @Rem <= @z
)
SET @TempOutput = CHAR(@Rem + 64)
ELSE IF (@Rem = 0)
SET @TempOutput = 'Z'
SET @Output = @TempOutput + @Output
END
IF (@input <= @Base + @z)
SET @Output = CHAR((@input % @Base) + 64)
SELECT cast(@Input AS VARCHAR(10)) + @Output
您可以随时转换数值为alphabatical形式,所以你应该存储的数值(101),并在需要时用之类的函数fn_NumericToAlphabatical
(你应该使用循环和CHAR
功能自己写这个函数)转换为101A
你应该生成序列
您可以创建计算列持续改善性能比较
显示一些样本.. –
这似乎不太合理。数字标识有什么问题? –
'126Z'后的值应该是多少? –