根据DISTINCT值插入'n'行并填充新的行值

问题描述:

我有一个表(邮件)和一个字段(文件名),它在所有记录中有3个不同的值。假设值是:根据DISTINCT值插入'n'行并填充新的行值

文件1
文件2
文件3

我需要从另一个表中插入一条记录(种子)到所述邮件表,根据这些不同的值,然后用更新的文件名场我将这些值插入到邮件表中。因此,如果我要插入1条记录,我最终会插入相同的记录3次,每个记录都有一个不同的值。

为了给一点背景,这里是我的基本INSERT INTO声明:

INSERT INTO dbo.mailing (
    Filename, 
    Title, 
    Forename, 
    Surname, 
    Address1, 
    Address2, 
    Address3, 
    Address4, 
    Address5, 
    Address7) 
SELECT 
    '?' AS Filename, 
    Title, 
    Forename, 
    Surname, 
    Company, 
    Address1, 
    Address2, 
    Address3, 
    Address4, 
    Postcode 
FROM dbo.Seeds AS S 
WHERE S.URN = 1 

我明明硬编码的文件名作为?目前。我希望这是有道理的?。

如果我理解正确,您的filename字段在seeds。如果是这样,你可以附加一个数字:

SELECT Filename + cast(row_number() over (partition by filename order by filename) as varchar(255)) as Filename, 
     . . . 
FROM dbo.Seeds S 
WHERE S.URN = 1; 
+0

嗨戈登 - 实际上没有种子中的文件名字段。文件名在我的主表中有不同的值,我需要在插入时填充种子 – ByteAddict