我有一個表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'後的值應該是多少? –