我有一张表tbl_login
,我希望我的列 id 也是自动递增和按字母顺序排列的。请帮我。提前致谢。
ID Name Pass
101A Mohan 1234
102B Madan 4321
103C Ram 12334
很好的问题。
i) 这个 id 最多可以生成多少位?比如 10,000 或 1,00,000 或更多
ii) 你应该从 101 开始随机抛出更多的例子。特别是从 4 位数和很少的 5 位数中抛出一些例子。
iii)你将如何实现它。就像你会插入单行还是你会插入批量行。一旦需求明确,实施的 SCRIPT 可以根据需求进行优化和更改。
iv) 测试我的脚本。首先从 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句