具有多个搜索词的sql查询
我使用以下查询来获取包含inventoryLocalization表的name列中的某些单词(由函数拆分)的所有数据 在本例中,我拆分了“红-绿-蓝”字符串。 应该是,它返回了所有行,如或运算符具有多个搜索词的sql查询,sql,sql-server,sql-server-2005,tsql,Sql,Sql Server,Sql Server 2005,Tsql,我使用以下查询来获取包含inventoryLocalization表的name列中的某些单词(由函数拆分)的所有数据 在本例中,我拆分了“红-绿-蓝”字符串。 应该是,它返回了所有行,如或运算符 SELECT distinct inL.name FROM dbo.[inventoryLocalization] inL JOIN fnSplitString (N'red green blue',' ' ) words ON (inL.name LIKE '%'+ words.item +'%')
SELECT distinct
inL.name
FROM dbo.[inventoryLocalization] inL
JOIN fnSplitString (N'red green blue',' ' ) words ON (inL.name LIKE '%'+ words.item +'%')
我的问题是,是否可以获取包含所有单词的行,如和运算符中的行。尝试以下操作:
SELECT distinct
inL.name
FROM dbo.[inventoryLocalization] inL
JOIN fnSplitString (N'red green blue',' ' ) words ON (inL.name LIKE '%'+ words.item +'%')
DECLARE @SomeWords NVARCHAR(200), @Num INT
SET @SomeWords = 'red green blue'
SELECT @Num = COUNT(*)
FROM fnSplitString (@SomeWords,' ')
SELECT inL.name
FROM dbo.[inventoryLocalization] inL
JOIN fnSplitString (@SomeWords,' ' )words
ON (inL.name LIKE '%'+ words.item +'%')
GROUP BY inL.name
HAVING COUNT(*) = @Num