标题:有两个表,需要对共同字段做模糊匹配后,输出对应记录
只看楼主
navigationli
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-5-14
结帖率:66.67%
已结贴  问题点数:20 回复次数:13 
有两个表,需要对共同字段做模糊匹配后,输出对应记录
select * from cbrq,htrq where cbrq.书名=htrq.书名
/*上条语句找出书名一字不差的两个表的所有字段和记录*/
但两个表 书名,来自不同的系统,所以书名上有差异,如何模糊匹配(比如几个字符相同,就视为匹配成功),输出对应的记录?
搜索更多相关主题的帖子: 对应 输出 匹配 两个表 记录 
2021-04-25 14:49
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
一条记录说明不了问题
对这条记录而言
WHERE ALLTRIM(cbrq.书名) $ htrq.书名

坚守VFP最后的阵地
2021-04-25 14:58
navigationli
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-5-14
得分:0 
2021-04-25 15:04
navigationli
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-5-14
得分:0 
回复 2楼 sdta
2021-04-25 15:04
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
select * from cbrq,htrq WHERE ALLTRIM(cbrq.书名) $ htrq.书名

坚守VFP最后的阵地
2021-04-25 15:10
navigationli
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-5-14
得分:0 
回复 5楼 sdta
执行后报“SQL内部错误”
用LINK模糊匹配能解决么?比如对比两个表,同样“书名”字段记录的前5个字,如果一致就匹配完成
比如表一 放射诊断,表二,放射诊断学诊疗,这两个就匹配成功,输出两个表关于这条匹配成功的对应的记录
2021-04-25 15:24
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用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


坚守VFP最后的阵地
2021-04-25 15:35
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:20 
select cbrq.*, htrq.* from cbrq,htrq WHERE ALLTRIM(cbrq.书名) $ htrq.书名

坚守VFP最后的阵地
2021-04-25 15:46
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
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
2021-04-25 20:30
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
得分:0 
关于模糊匹配,有连续的关键字也不一定是相同的东西,没有连续的关键字,也可能是相同的,比如:我的茶杯,我喝茶的杯子 ……

有点麻烦! 类似我们的税务开票系统的商品编码与我们私有系统的物料编码如何进行匹配,最终还是需要人工确定,我感觉电脑筛选出类似的,然后人来确定 ……
2021-04-26 08:20



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




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

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