【发布时间】:2020-07-13 18:14:25
【问题描述】:
考虑以下两个表:
table1
id key
---------
1 foo
table2
id key1 key2
------------------
1 foo 444
2 (foo) 453
3 bar 355
我想将两个表中的信息结合起来,如下:
select t1.id, t1.key, t2.key2
from [table1] t1
left join [table2] t2 on t1.[key] = t2.[key1]
结果
id key key2
-----------------
1 foo 444
问题是,我有时key1 中的值有括号(),但我需要忽略这些。所以实际上,(foo) 实际上也是foo,因此所需的输出是:
id key key2
-----------------
1 foo 444
2 foo 453
问题:我的查询应该如何完成?
【问题讨论】:
-
旁白:使用 SQL Server 2017,您可以加入
on t1.[key] = Trim( '()' from t2.[key] ),但这并不完全正确。一次性清理可能就足够了,但'foo'将匹配'(foo)'、')foo('、'foo('、')foo)()()()'、...。
标签: sql sql-server tsql join sql-server-2012