在不匹配的字段上加入表格?

时间:2018-02-06 17:18:44

标签: sql ms-access

我正在尝试加入2个表,但我正在尝试加入的字段的内容采用不同的格式。

Table1 name field is just is normal - Dave, Bob, Gary
Table2 name field some of them have brackets after - Dave (GB), Bob, Gary (JAP)

在vb.net中,我只想将名称拆分为“(”,在JOIN查询中,我可以在Access中执行类似的操作吗?

INNER JOIN People ON (SPLIT(Moves.name, " (", "") = People.name);

2 个答案:

答案 0 :(得分:1)

您可以加入InStr的结果:

select *
from table1 t1
inner join table2 t2 on InStr(t2.name, t1.name & ' (')=1

t1已经"清洁"串; t2包含(...)个后缀的字符串。上面的连接表达式将空格+左括号字符串' ('附加到t1的字段,并检查来自t2的字段是否以该字符串开头。

答案 1 :(得分:0)

字符串REPLACESUBSTRING方法可行

    SELECT CASE WHEN 'Dave' = REPLACE('Dave (GB)',SUBSTRING('Dave (GB)', CHARINDEX(' ', 'Dave (GB)'), Len('Dave (GB)')), '')  THEN 'Yes'
    ELSE 'NO' END

将'Dave'和'Dave(GB)'替换为相应表格中的列名,请在您的联接中使用以下条件。

    'Dave' = REPLACE('Dave (GB)',SUBSTRING('Dave (GB)', CHARINDEX(' ', 'Dave (GB)'), Len('Dave (GB)')), '')