-1

我有一个tableA (ID INT Identity(1,1) , Name VARCHAR(2))

我想用从到的name值填充表格:01、02、03、04。A1, A2, A3,.. Z1,Z2..01ZZ

每个值都是不同的。

4

2 回答 2

3

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

于 2013-05-17T18:24:07.740 回答
1
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
于 2013-05-17T18:22:49.210 回答