首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在字符串后添加整数增量,以表示缺失值ms-access。

在字符串后添加整数增量,以表示缺失值ms-access。
EN

Stack Overflow用户
提问于 2017-06-09 13:48:32
回答 1查看 176关注 0票数 0

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

Path1 Path2路..。

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

代码语言:javascript
复制
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"));
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-10 00:33:21

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

您可以在一个3步的过程中完成这一点,如this answer中所描述的。我假设您在KMS_VEJMIDT_BRUDT表中有一个ID主键字段。

步骤1:

使用以下SQL进行名为SELECTGENERATE_NEXT_NAVN查询:

代码语言:javascript
复制
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中所述。我使用它生成一个递增的数字,从源表中的最高NAVN开始。

步骤2:将查询输出从步骤1复制到临时表中:

代码语言:javascript
复制
SELECT GENERATE_NEXT_NAVN.* 
INTO NEXT_NAVN_TEMP
FROM GENERATE_NEXT_NAVN;

步骤3:使用临时表中的值更新源表:

代码语言:javascript
复制
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];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44459509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档