我有2个表,其中一个列类似,称为“ Re”,但是表1中的“ Re”列是一个列表,如下所示。
我想搜索Table2.Re是否在Table1.Re中,如果是,则返回Table1.FiN。
表1
FiN Re
A ,1,2,3,4
B ,6,7,8,9
C ,3,5,6,7
D ,7,10,11,24
表2
Re
3
5
6
9
答案 0 :(得分:2)
您可以尝试使用LIKE
。
SELECT t1.[FiN]
FROM [Table 2] t2
INNER JOIN [Table 1] t1
ON t1.[Re] LIKE concat('%,', t2.[Re], ',%');
但请注意,您不应该使用逗号分隔的列表。
答案 1 :(得分:0)
就像我们使用INSTR(..)
来检查实际字符串中子字符串是否存在一样(在这种情况下,CHARINDEX(..)
将执行相同的操作,如果它匹配则值将大于0。因此,您获得所需的输出。
SELECT t2.RE FROM TABLE2 t2
JOIN TABLE1 t1
ON
CHARINDEX(t1.re, t2.re)>0;
或
Mak将like
用作
SELECT t2.RE FROM TABLE2 t2
JOIN TABLE1 t1
ON
t1.re LIKE "%,"+ t2.re + "%,";