SQL:在子字符串上连接表

时间:2012-03-20 14:20:07

标签: sql sql-server tsql

我的表格 A ,字符串列 a ,表格 B ,字符串列 b 。 a是b的子串。现在我想加入 a和b 上的两个表格。这可能吗?

我想要这样的事情:

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

如何在SQL(Transact-SQL)中编写它?

5 个答案:

答案 0 :(得分:19)

您可以使用like

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

答案 1 :(得分: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

您也可以使用charindex,0表示未找到,大于0是起始索引

charindex

答案 2 :(得分:1)

使用表TABLE2的FIELD1在表TABLE1的FIELD1的子串(4个字母)上设置内连接

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

答案 3 :(得分:0)

试试这个:

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

答案 4 :(得分:0)

你有包含功能: http://msdn.microsoft.com/en-us/library/ms187787.aspx

select * from A,B where contains(B.b, A.a)