我正在尝试加入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);
答案 0 :(得分:1)
您可以加入InStr
的结果:
select *
from table1 t1
inner join table2 t2 on InStr(t2.name, t1.name & ' (')=1
t1
已经"清洁"串; t2
包含(...)
个后缀的字符串。上面的连接表达式将空格+左括号字符串' ('
附加到t1
的字段,并检查来自t2
的字段是否以该字符串开头。
答案 1 :(得分:0)
字符串REPLACE
和SUBSTRING
方法可行
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)')), '')