2016-07-01 18 views
-2

假設我在一個表中的列a和另一個表中的列2。他們都是navchar。第2列以'-US'結尾。如果第1列與第2列相同但沒有美國結束,我如何加入這兩張表格?Sql加入類似的列,但不相同

+2

'上t2.c2 = T1.C1 +「-US''您也可能嘗試像t1.c1 +'%''那樣添加'和t2.c2來查看你是否得到了更好/更快的計劃。 – shawnt00

回答

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 + '%' 
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