SQL: объединить таблицы на подстроки - PullRequest
6 голосов
/ 20 марта 2012

У меня есть таблица A со строковым столбцом a и таблица B со строковым столбцом b .a является подстрокой b.Теперь я хочу объединить две таблицы на a и b .Возможно ли это?

Я хочу что-то вроде этого:

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

Как я могу написать это в SQL (Transact-SQL)?

Ответы [ 5 ]

20 голосов
/ 20 марта 2012

Вы можете использовать как

select *
from A
  inner join B 
    on B.b like '%'+A.a+'%'
2 голосов
/ 20 марта 2012
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

Вы также можете использовать charindex, 0 означает, что он не найден, больше 0 - начальный индекс

CHARINDEX

1 голос
/ 28 октября 2012

установить внутреннее соединение на подстроку (4 буквы) FIELD1 таблицы TABLE1 с FIELD1 таблицы TABLE2

select TABLE1.field1,TABLE2.field1 from TABLE1 inner join TABLE2 on substring(TABLE1.field1,2,5)=TABLE2.field1
0 голосов
/ 20 марта 2012

У вас есть функция содержит: http://msdn.microsoft.com/en-us/library/ms187787.aspx

select * from A,B where contains(B.b, A.a)
0 голосов
/ 20 марта 2012

попробуйте это:

Select * from A,B where B.b LIKE '%'+A.a+'%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...