首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找/替换数字本身减去一些固定值

问查找/替换数字本身减去一些固定值
EN

Stack Overflow用户
提问于 2013-12-12 19:39:26
回答 2查看 486关注 0票数 0

因此,我有一个SQL脚本将大量行(140,000+)插入到数据库表中。每一行都有一个或多个列,其中包含一个数值。我需要用数字减去一些偏移(见下面的例子)来替换这些数字。有谁知道一种简单快捷的方法或者一个程序来完成它呢?基本上,我只想指定偏移量是什么,并让它在文件中迭代,找到所有的数字,并从每个数字中减去偏移量。

任何和所有的帮助(或指向正确方向的指针)都是非常感谢的!提前感谢!

样本行:

代码语言:javascript
复制
insert into failurelist (failurelist,failurecode,parent,type,orgid) values (6284, 'ABSRBR', null, null, 'ABC');
insert into failurelist (failurelist,failurecode,parent,type,orgid) values (6285, 'SEIZED', '6284', 'PROBLEM', 'ABC');
insert into failurelist (failurelist,failurecode,parent,type,orgid) values (6286, 'ABSRB-PERF', '6285', 'CAUSE', 'ABC');

这些是脚本的前3行。对于这个脚本,我想要减去6283 (因此它们从1开始编号,而不是从6284开始)。请注意,一些数值是单引号‘’,而另一些则不是。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-12 19:44:17

你就不能写点这样的东西吗?

代码语言:javascript
复制
  Update failurelist set failurelist = failurelist - 6283 
票数 2
EN

Stack Overflow用户

发布于 2013-12-12 20:48:17

“家长”栏目似乎是一种一元关系,这一事实让我有点困惑。如果主键列是整数,为什么父列要表示为字符串。如果它们都是整数,则只需:

代码语言:javascript
复制
UPDATE failurelist 
SET failurelist = failurelist - 6283,
   parent = parent - 6283

在它当前的形式中,您需要这样做:

代码语言:javascript
复制
DECLARE @failurelist TABLE
(
failurelist     INT,
failurecode     varchar(20),
parent          varchar(20),
type            varchar(20),
orgid           varchar(20)
)

insert into @failurelist (failurelist,failurecode,parent,type,orgid) values (6284, 'ABSRBR', null, null, 'ABC');
insert into @failurelist (failurelist,failurecode,parent,type,orgid) values (6285, 'SEIZED', '6284', 'PROBLEM', 'ABC');
insert into @failurelist (failurelist,failurecode,parent,type,orgid) values (6286, 'ABSRB-PERF', '6285', 'CAUSE', 'ABC');

UPDATE @failurelist 
SET failurelist = failurelist - 6283,
    parent      = CAST(CAST(parent AS INT) -6283 AS varchar(20))

现在,表变量@failurelist包含所需的结果。您只需使用table变量的结果填充实际的表,如下所示

代码语言:javascript
复制
INSERT INTO failurelist
  SELECT * FROM @failurelist 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20552660

复制
相关文章

相似问题

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