SqlServer2008R2
给出 首位和末位 能批量生成 首位到末尾的数据组
例如首位: A0000001 末位:A0000010 给这两个参数就会自动生成 下面这样的数组
2:首位的字符和字符位数不确定,字符串长度不确定 ,有可能是 首位:AB0000000001 末位:AB0000000100 也有可能首位:A00A0002 末位:A00B0003 要能货到 首位到末位的字符串自增的一个数据列
A0000001
A0000002
A0000003
.....
A0000009
A0000010
如果使用 T-SQL (Transact-SQL) ,可以使用以下代码生成自增字符串:
WITH N(N) AS
(
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1))
FROM (VALUES (0),(0),(0),(0),(0),(0),(0),(0),(0),(0)) T(N)
),
M(M) AS
(
SELECT 1 UNION ALL SELECT M + 1
FROM M WHERE M < (
SELECT CAST(RIGHT(末位, LEN(末位) - LEN(首位)) AS INT)
- CAST(RIGHT(首位, LEN(末位) - LEN(首位)) AS INT)
+ 1
FROM (VALUES('首位','末位')) T(首位,末位)
)
)
SELECT 首位 + CAST(
CAST(RIGHT(首位, LEN(末位) - LEN(首位)) AS INT)
N.N - 1 AS VARCHAR(100)
)
FROM N, M, (VALUES('首位','末位')) T(首位,末位)
ORDER BY N;
请注意将首位和末位替换为自己的值。