0
客戶端希望根據計數附加一個字段並增加文字增量。帶有定義範圍的ASCII增量
範圍從'aa'變爲'zz'。
'AA' 代表和 'ZZ' 計數表示範圍內的最大值:
我的SQL 幾乎的作品,但將不勝感激專家的眼睛讓我度過了最後一關。
--Constants
DECLARE @START_ASCII INT = 97
DECLARE @ASCII_OFFSET INT = 1
DECLARE @ALPHABET_LETTER_COUNT INT = 26
--Variables
DECLARE @RecordCount INT = 0
DECLARE @FirstLetter VARCHAR(1) = NULL
DECLARE @SecondLetter VARCHAR(1) = NULL
SET @RecordCount = 1 --Range is 1 to 676 (e.g. 'aa' to 'zz')
SET @FirstLetter = CHAR(round(@RecordCount/@ALPHABET_LETTER_COUNT, 2, 1) + @START_ASCII)
SET @SecondLetter = CHAR((((@RecordCount - @ASCII_OFFSET) % @ALPHABET_LETTER_COUNT) + @START_ASCII))
SELECT @FirstLetter + @SecondLetter
上述sql的問題涉及到第一個字母。它的作品一直到第二個字母到達字母表末尾。例如,在計數爲,我預計'az',而是得到'bz'。
我想保持SQL小而緊(例如沒有CASE語句)。是否可以對上述代碼進行小小的調整,以便它可以正常工作?或者,如果只有一種更聰明的方式來撫摸這隻貓,我想知道這一點。