标题:两表快速替换的求助
只看楼主
yewxj
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:157
专家分:153
注 册:2015-6-18
结帖率:83.33%
已结贴  问题点数:20 回复次数:9 
两表快速替换的求助
CREATE CURSOR t1 (f1 C(5), f2 C(5), f3 I)
INSERT INTO t1 VALUES ('9', '2', 0)
INSERT INTO t1 VALUES ('9', '2', 0)
INSERT INTO t1 VALUES ('2', '1', 0)
INSERT INTO t1 VALUES ('9', '2', 10)
INDEX on f1+f2 TAG f1f2
CREATE CURSOR t2 (f1 C(5), f2 C(5), f3 I)
INSERT INTO t2 VALUES ('1', '2', 1)
INSERT INTO t2 VALUES ('2', '2', 2)
INSERT INTO t2 VALUES ('3', '2', 2)
INSERT INTO t2 VALUES ('9', '2', 3)
SELECT t2
SET RELATION TO f1+f2 INTO "t1"
REPLACE t1.f3 WITH t2.f3 ALL FOR t1.f3=0
SELECT t1
BROWSE


请问老师,上面语句只替换了第一个满足条件的记录,如果要替换全部满足条件的记录,需要怎样修改?


[此贴子已经被作者于2017-9-13 23:40编辑过]

搜索更多相关主题的帖子: 快速 替换 INSERT INTO VALUES 
2017-09-13 23:02
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
全部条件列出来看看

坚守VFP最后的阵地
2017-09-13 23:20
yewxj
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:157
专家分:153
注 册:2015-6-18
得分:0 
回复 2楼 sdta
如t1表 f1,f2 与 t2 表f1,f2 相等,且t1表的f3是0,则t1所有符合前面条件的记录的f3,都用t2表的f3值替换

[此贴子已经被作者于2017-9-13 23:43编辑过]

2017-09-13 23:35
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
答非所问

坚守VFP最后的阵地
2017-09-13 23:40
yewxj
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:157
专家分:153
注 册:2015-6-18
得分:0 
回复 4楼 sdta
不好意思,我是新手,不知道这样回答是不是正确的,如t1表 f1,f2 与 t2 表f1,f2 相等,且t1表的f3是0,则t1所有符合前面条件的记录的f3,都用t2表的f3值替换
2017-09-13 23:44
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:20 
SELECT t2
SET RELATION TO f1+f2 INTO "t1"
set skip to t1
REPLACE t1.f3 WITH t2.f3  FOR t1.f3=0
SELECT t1
BROWSE

有时间看看VFP的帮助文件

坚守VFP最后的阵地
2017-09-13 23:55
yewxj
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:157
专家分:153
注 册:2015-6-18
得分:0 
回复 6楼 sdta
谢谢老师!
2017-09-14 00:03
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
REPLACE t1.f3 WITH t2.f3  FOR t1.f3=0
如果是处理所有记录,这句要加 ALL 子项:
REPLACE t1.f3 WITH t2.f3  FOR t1.f3=0 ALL
否则,只是处理当前工作区表的当前记录。
2017-09-14 07:38
wangzhiyi
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:366
专家分:684
注 册:2014-4-9
得分:0 
以下是引用吹水佬在2017-9-14 07:38:03的发言:

REPLACE t1.f3 WITH t2.f3  FOR t1.f3=0
如果是处理所有记录,这句要加 ALL 子项:
REPLACE t1.f3 WITH t2.f3  FOR t1.f3=0 ALL
否则,只是处理当前工作区表的当前记录。

吹版,如果在命令里加了FOR条件,范围会自动转为全部记录的。
2017-09-14 08:42
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
以下是引用wangzhiyi在2017-9-14 08:42:38的发言:


吹版,如果在命令里加了FOR条件,范围会自动转为全部记录的。

确是
2017-09-14 09:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480673-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.090253 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved