在字符串SQL SERVER 2008中查找子字符串的确切出现位置

时间:2012-03-01 00:12:27

标签: sql-server-2008

我想知道如何找到字符串中子字符串的确切出现。更具体地说,字符串有逗号分隔的单词,我想知道单词是否存在。

假设我们有这样的事情:

DECLARE @VisitedWebParts nvarchar(255)

 SET @VisitedWebParts =  'MyNavContacts,MyNavUpcomingMaturities,MyNavActivitySummary,MyNavCompanies,CompanyNavBidHistory,CompanyNav'

我如何找到如果'CompanyNav'存在于字符串中的话。如果我错了,使用Like或CharIndex可能无法帮助并纠正我,因为如果CompanyNav实际上不存在且CompanyNavBidHis存在,那么也会错误地说CompanyNav会存在。你知道我的意思!

提前感谢您的想法和建议!

1 个答案:

答案 0 :(得分:1)

关键是要确保你也考虑字符串两侧的逗号。这意味着您需要将逗号包围的字符串与逗号包围的输入进行比较。

IF CHARINDEX(',CompanyNav,', ',' + @VisitedWebParts + ',') > 0
BEGIN
  PRINT 'It exists!'
END
ELSE
BEGIN
  PRINT 'It does not exist!'
END