在字符串后添加整数增量以获取缺失值 ms-access

Adding integer increment after string for missing values ms-access

我有一个包含道路名称和道路类型的数据集。有许多缺失的道路名称,我想用一个简单的字符串来填充缺失的名称,该字符串声明道路类型,后跟一个唯一整数标识符,如下所示。

路径 1 路径2 路径...

我正在尝试使用 declare 函数,但我的声明中有些地方不正确。

DECLARE @i int
SET @i=0

UPDATE KMS_VEJMIDT_BRUDT
SET VEJNAVN = "Sti"+Str(@i), @i=@i+1
WHERE (((KMS_VEJMIDT_BRUDT.VEJNAVN) Is Null) AND ((KMS_VEJMIDT_BRUDT.VEJMTYPE)="Sti"));

编辑: 我稍微误读了这个问题 - 我添加了 "Sti" 作为生成数字的前缀,并从 1

开始

您可以按照 this answer 中所述的 3 步过程完成此操作。我假设您在 KMS_VEJMIDT_BRUDT table.

中有一个 ID 主键字段

第 1 步:

使用以下 SQL:

创建名为 GENERATE_NEXT_NAVNSELECT 查询
SELECT C.ID, "Sti"&[RowNo] AS NEXT_VEJNAVN
FROM (SELECT A.ID, 
A.VEJMTYPE, 
(select count(*) from  KMS_VEJMIDT_BRUDT as B where A.ID>=B.ID AND B.VEJNAVN Is Null and A.VEJMTYPE = "Sti" ) AS RowNo
FROM KMS_VEJMIDT_BRUDT AS A 
WHERE A.VEJNAVN Is Null 
and A.VEJMTYPE = "Sti"
)  AS C;

请注意 this answer 中所述的行号解决方法的使用。我使用它从源 table.

中存在的最高 NAVN 开始生成递增数字

第 2 步: 将步骤 1 的查询输出复制到临时 table:

SELECT GENERATE_NEXT_NAVN.* 
INTO NEXT_NAVN_TEMP
FROM GENERATE_NEXT_NAVN;

第 3 步: 使用临时 table:

中的值更新源 table
UPDATE KMS_VEJMIDT_BRUDT 
INNER JOIN NEXT_NAVN_TEMP 
ON KMS_VEJMIDT_BRUDT.ID = NEXT_NAVN_TEMP.ID 
SET KMS_VEJMIDT_BRUDT.VEJNAVN = [NEXT_NAVN_TEMP].[NEXT_VEJNAVN];