2012-03-20 17 views
5

Mam tabeli A z ciągiem kolumnie oraz stół B z ciągiem kolumnie b. a jest podciągiem b. Teraz chcę dołączyć do dwóch tabel: ai b. czy to możliwe?SQL: Dołącz do tabel na podciągi

chcę coś takiego:

Select * from A,B where A.a *"is substring of"* B.b

Jak mogę napisać to w SQL (Transact-SQL)?

Odpowiedz

17

Można użyć like

select * 
from A 
    inner join B 
    on B.b like '%'+A.a+'%' 
0

spróbuj tego:

Select * from A,B where B.b LIKE '%'+A.a+'%' 
+2

składni LIKE jest wstecznie –

+0

edytowane, dziękuję. –

2
declare @tmp1 table (id int, a varchar(max)) 
declare @tmp2 table (id int, b varchar(max)) 


insert into @tmp1 (id, a) values (1,'one') 
insert into @tmp2 (id,b) values (1,'onetwo') 

select * from @tmp1 one inner join @tmp2 two on charindex(one.a,two.b) > 0 

Można również użyć CHARINDEX, 0 oznacza jej nie znaleziono, większy niż 0 jest indeksem początek

charindex

1

ustawić sprzężenie wewnętrzne na podciągu (4 litery) z pole1 z tabeli Tabela 1 z pole1 tabeli Table2

select TABLE1.field1,TABLE2.field1 from TABLE1 inner join TABLE2 on substring(TABLE1.field1,2,5)=TABLE2.field1