如何在SQL中部分匹配的列上联接两个表?
例如:
T1.column
的字符串为'c/ar'
,而T2.column
的字符串为'ar'
,在这种情况下,我希望将这些表联接起来。
我尝试过
select column2,
column3
from T1 join T2 on T1.column like '%T2.column';
但它返回0行。
答案 0 :(得分:1)
或者,您可以将strpos
函数用作
select column1, column2
from T1
join T2 on strpos(T1.column1,T2.column2)>0;
PostgreSQL的strpos()函数用于查找子字符串在字符串中匹配的位置。
语法: strpos(<字符串>,<子字符串>)
答案 1 :(得分:1)
您还可以使用RIGHT()
和LENGTH()
函数,因为您正在检查T2.Column
末尾是否存在T1.Column
ON RIGHT(T1.Column1, LENGTH(T2.Column2)) = T2.Column2
答案 2 :(得分:0)
您需要将'%'
与列T2.column
而不是字符串值'T2.column'
连接起来:
like ('%' || T2.column)
或
like CONCAT('%', T2.column)