-2
假設我在一個表中的列a和另一個表中的列2。他們都是navchar。第2列以'-US'結尾。如果第1列與第2列相同但沒有美國結束,我如何加入這兩張表格?Sql加入類似的列,但不相同
假設我在一個表中的列a和另一個表中的列2。他們都是navchar。第2列以'-US'結尾。如果第1列與第2列相同但沒有美國結束,我如何加入這兩張表格?Sql加入類似的列,但不相同
你可以做任何
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 + '%'
明顯的事情是採取-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
'上t2.c2 = T1.C1 +「-US''您也可能嘗試像t1.c1 +'%''那樣添加'和t2.c2來查看你是否得到了更好/更快的計劃。 – shawnt00