存储的proc +变量包含表行字段

时间:2014-01-11 02:48:38

标签: sql stored-procedures sql-server-2012

我正在尝试对表中字段的文本包含在变量中进行查询。

示例:

表A

ID     Ref               Processed
----|-----------------|---------
1   |  I want a pool  |   0
2   |  I want a bike  |   0

表B

ID     Text
----|---------------
1   |  pool
2   |  bike

TableA中所有未经处理的行转换为#tempTable

select * into #tmpTable from TableA where processed = 0

然后我在#tmpTable中的每一行循环,并将@Variable设置为当前字段Ref

首次通过@Variable = 'I want a pool'然后@Variable = 'I want a bike'

然后我需要查询TableB Text字段包含在@Variable内的select * from TableB where @Variable LIKE '% '+Text+' %' 并选择该行。

我知道以下内容不起作用,但这是我需要结束的地方:

{{1}}

我正在编辑现有的存储过程,所以如果有更好的方法可以解决这个问题,那么我会对所有建议持开放态度。

1 个答案:

答案 0 :(得分:2)

这是你在找什么?

select a.*, b.text
from tableA a join
     tableB b
     on a.processed = 0 and
        ref like '%'+b.text+'%';

编辑:

如果要匹配以空格分隔的单词:

     on a.processed = 0 and
        ' '+ref+' ' like '% '+b.text+' %';