仅获取那些行,其中column1中的值包含或类似于同一表和同一行的column2中的值。
例如,如果表格看起来像这样:
但我只想获取column1的值与column2的一部分匹配的行,如下所示:
对于同样的情况,我生成了一个具有相似模式的列,并在where条件中使用相同的模式,如下所示:
SELECT '''%''' + cast(t.col1 AS varchar(200))+ '''%''' as MatchThis,
FROM [practice].[tables].[Temp1] t
WHERE t.col2 LIKE '''%''' + cast(t.col1 AS varchar(200))+ '''%'''
这可能有帮助,可能是因为LIKE
总是采用硬编码的QUOTED值并将其与查询的所有结果行进行比较。
我也试过了CONTAINS
,但这也不起作用。
现在坚持这个,还有其他出路。
答案 0 :(得分:1)
这样做你想要的吗?
select t.*
from [practice].[tables].[Temp1] t
where t.col2 like '%' + col1 + '%';
您的查询相对于问题似乎过于复杂。问题是关于比较两列,因此应在WHERE
子句中建议某种条件。