假设我在一个表中有列a,在另一个表中有列2。他们都是navchar。第2列以' -US'结尾。如果第1列与2相同但没有美国结尾,我如何加入这两个表?
答案 0 :(得分:1)
你可以做任何一件事
SELECT
a.Field1
,a.Field2
,b.Field3
FROM TableA a
JOIN TableB b
ON a.Fieldname + '-US' = b.FieldName
或者如果它不总是以-US结束那么你可以试试这个
SELECT
a.Field1
,a.Field2
,b.Field3
FROM TableA a
JOIN TableB b
ON b.FieldName LIKE a.FieldName + '%'
答案 1 :(得分:0)
显而易见的事情是考虑-US
后缀:
on t2.c2 = t1.c1 + '-US'
或者也许:
on t1.c1 = left(t2.c2, len(t2.c2) - 3)
如果需要性能,可以考虑使用索引的计算列。像这样:
alter table t1 add c1_us as (c1 + '-US');
create index t1_c1_us on t1(c1_us);
这将允许索引用于以下条件:
on t2.c2 = t1.c1_us