注册 登录
编程论坛 VFP论坛

有两个表,需要对共同字段做模糊匹配后,输出对应记录

navigationli 发布于 2021-04-25 14:49, 1835 次点击
select * from cbrq,htrq where cbrq.书名=htrq.书名
/*上条语句找出书名一字不差的两个表的所有字段和记录*/
但两个表 书名,来自不同的系统,所以书名上有差异,如何模糊匹配(比如几个字符相同,就视为匹配成功),输出对应的记录?
只有本站会员才能查看附件,请 登录
13 回复
#2
sdta2021-04-25 14:58
一条记录说明不了问题
对这条记录而言
WHERE ALLTRIM(cbrq.书名) $ htrq.书名
#3
navigationli2021-04-25 15:04
只有本站会员才能查看附件,请 登录
#4
navigationli2021-04-25 15:04
回复 2楼 sdta
只有本站会员才能查看附件,请 登录
#5
sdta2021-04-25 15:10
select * from cbrq,htrq WHERE ALLTRIM(cbrq.书名) $ htrq.书名
#6
navigationli2021-04-25 15:24
回复 5楼 sdta
执行后报“SQL内部错误”
用LINK模糊匹配能解决么?比如对比两个表,同样“书名”字段记录的前5个字,如果一致就匹配完成
比如表一 放射诊断,表二,放射诊断学诊疗,这两个就匹配成功,输出两个表关于这条匹配成功的对应的记录
#7
sdta2021-04-25 15:35
以下是引用navigationli在2021-4-25 15:24:56的发言:

执行后报“SQL内部错误”
用LINK模糊匹配能解决么?比如对比两个表,同样“书名”字段记录的前5个字,如果一致就匹配完成
比如表一 放射诊断,表二,放射诊断学诊疗,这两个就匹配成功,输出两个表关于这条匹配成功的对应的记录

怎么可能会出现错误

示例:
CREATE CURSOR t1 (sm c(20))
INSERT INTO t1 VALUES ("肿瘤护理学")
INSERT INTO t1 VALUES ("红烧肉不好吃")
INSERT INTO t1 VALUES ("北京烤鸭")
INSERT INTO t1 VALUES ("千村美院")
INSERT INTO t1 VALUES ("掼蓝高手")
CREATE CURSOR t2 (sm c(20))
INSERT INTO t2 VALUES ("肿瘤护理学_10")
INSERT INTO t2 VALUES ("红烧肉真好吃")
INSERT INTO t2 VALUES ("北京烤鸭")
INSERT INTO t2 VALUES ("20_千村美院")
INSERT INTO t2 VALUES ("足球小子")
SELECT t1.sm, t2.sm FROM t1, t2 WHERE ALLTRIM(t1.sm) $ t2.sm

#8
sdta2021-04-25 15:46
select cbrq.*, htrq.* from cbrq,htrq WHERE ALLTRIM(cbrq.书名) $ htrq.书名
#9
吹水佬2021-04-25 20:30
CREATE CURSOR t1 (sm c(20))
INSERT INTO t1 VALUES ("肿瘤护理学")
INSERT INTO t1 VALUES ("20_千村美院")
CREATE CURSOR t2 (sm c(20))
INSERT INTO t2 VALUES ("肿瘤护理学_10")
INSERT INTO t2 VALUES ("千村美院")
SELECT t1.sm, t2.sm FROM t1, t2 WHERE ALLTRIM(t1.sm)$t2.sm OR ALLTRIM(t2.sm)$t1.sm
#10
radiofan2021-04-26 08:20
关于模糊匹配,有连续的关键字也不一定是相同的东西,没有连续的关键字,也可能是相同的,比如:我的茶杯,我喝茶的杯子 ……

有点麻烦! 类似我们的税务开票系统的商品编码与我们私有系统的物料编码如何进行匹配,最终还是需要人工确定,我感觉电脑筛选出类似的,然后人来确定 ……
#11
navigationli2021-04-26 10:47
回复 7楼 sdta
谢谢,找到原因了,虽然还是有些没有模糊匹配,但也解决了大问题,之所以我之前执行命令会报“SQL内部错误”是因为装的是VFP6,换成VFP9就解决了问题。运行无报错
#12
sdta2021-04-26 12:15
这个帖子对你是否有帮助:https://bbs.bccn.net/thread-79864-2-1.html
#13
navigationli2021-04-26 12:27
SQL内部报错,(VFP 6.导致,9.0可解决)
#14
navigationli2021-04-27 09:00
回复 12楼 sdta
谢谢您的分享和指导。
1