首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配列-在查询中

匹配列-在查询中
EN

Stack Overflow用户
提问于 2015-06-26 07:30:38
回答 2查看 69关注 0票数 1

试着看看我是否可以围绕匹配这些列构建一些逻辑。我有两张桌子

代码语言:javascript
复制
        Table A
    Make             Model
    BMW              2 Series
    BMW              3 Series
    BMW              3 Series GT
    BMW              5 Series
    BMW              5 Series GT
    BMW              7 Series
    Rolls-Royce      Other
    Mini             Cooper
    Mini             Coupe 


        Table B
    Make           Series
    BMW            2 Series
    BMW            3 Series
    BMW            5 Series
    Bavarian Motor 7 Series
    Rolls-Royce    42000 GT
    Mini           Cooper

我需要提取输出,如下所示并存储在一个表中

代码语言:javascript
复制
    Output
    Make              Model_A        Model_B
    BMW              2 Series        2 Series
    BMW              3 Series        3 Series
    BMW              3 Series GT     3 Series
    BMW              5 Series        5 Series
    BMW              5 Series GT     5 Series
    BMW              7 Series        7 Series
    Rolls-Royce      Other           42000 GT  
    Mini             Cooper          Cooper
    Mini             Coupe           Cooper

在很大程度上,我可以使用下面的查询来匹配列:

代码语言:javascript
复制
        ( A.SERIES like '%' + B.model + '%'
         OR B.model like '%' + A.series + '%' )

但这并不处理"Coupe“vs "Cooper",劳斯莱斯或”宝马“vs”巴伐利亚汽车“的情况。

你知道我如何在T-sql或查询中处理所有这些问题吗?在这种情况下,Soundex或任何距离算法都不起作用-两者都尝试过了。

我知道我可以在一个查询中使用"union all“来处理所有情况,但关键是要处理上面的边缘情况。

提前感谢您的帮助。~蜜蜂

EN

回答 2

Stack Overflow用户

发布于 2015-06-26 07:38:11

为什么不像下面这样在两个表上执行JOIN,以获得匹配的型号和系列

代码语言:javascript
复制
select t1.Make,t1.Model as Model_A,
t2.Series as Model_B
from tableA t1 join tableB t2 
on t1.Make = t2.Make;
票数 0
EN

Stack Overflow用户

发布于 2015-06-28 09:27:08

我很犹豫地建议这样做,但它可能会在您的情况下工作:

代码语言:javascript
复制
    ( A.SERIES like '%' + B.model + '%'
     OR B.model like '%' + A.series + '%' ) or
     SOUNDEX(A.series) = SOUNDEX(b.model)

SOUNDEX()有如此多的问题,以至于真的没有理由使用它--除非你在人口普查局工作,并想对姓氏进行分类,以便将来参考拼写变化。但是,您可能会发现它对解决此特定问题很有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31062494

复制
相关文章

相似问题

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