我有一个tableA (ID INT Identity(1,1) , Name VARCHAR(2))
我想用从到的name
值填充表格:01、02、03、04。A1, A2, A3,.. Z1,Z2..01
ZZ
每个值都是不同的。
我有一个tableA (ID INT Identity(1,1) , Name VARCHAR(2))
我想用从到的name
值填充表格:01、02、03、04。A1, A2, A3,.. Z1,Z2..01
ZZ
每个值都是不同的。
WHERE
我认为这就是您要查找的内容(您始终可以使用该子句过滤掉您不想要的任何组合):
with characters as
(
select c = char(number) from master..spt_values
where type = 'P' and number between 48 and 57 or number between 65 and 90
)
insert into dbo.tableA ([name])
select
c1.c + c2.c
from
characters c1
cross join characters c2
where
c1.c + c2.c <> '00'
请注意,不建议spt_values
在生产代码中使用;更好的解决方案是使用您自己的数字表。如果应该始终是“不同的”,您可能希望向列添加唯一约束(如果您还没有的话)。name
DECLARE @chars varchar(36)
set @chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
DECLARE @i1 int = 1
DECLARE @i2 int = 2
WHILE @i1 < LEN(@chars)
BEGIN
WHILE @i2 < LEN(@chars)
BEGIN
INSERT tableA(Name) VALUES (SUBSTRING(@chars, @i1, 1) + SUBSTRING(@chars, @i2, 1))
SET @i2 += 1
END
SET @i1 += 1
SET @i2 = 1
END