2012-03-01 81 views
0

我想知道如何找到字符串中子字符串的確切位置。更具體地說,字符串包含用逗號分開的單詞,我想知道一個單詞是否存在。查找字符串中子字符串的確切位置SQL SERVER 2008

比方說,我們有這樣的事情:

DECLARE @VisitedWebParts nvarchar(255) 

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

我如何找到讓說,如果「CompanyNav」字符串中存在。如果我錯了,使用Like或CharIndex可能無助於糾正我,因爲如果CompanyNav實際上不存在且CompanyNavBidHis存在,那麼也會錯誤地說CompanyNav會存在。你知道我的意思!

在此先感謝您的意見和建議!

回答

1

關鍵是要確保您考慮字符串任一側的逗號。這意味着你需要比較逗號包圍的字符串和逗號包圍的輸入。

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

如果CompanyNav碰巧是字符串中的第一個單詞,它不會以逗號開頭。糾正我,如果我錯了。 – SaiBand 2012-03-01 00:23:19

+0

這就是爲什麼我加了'','+ @string +',''......你試過了嗎? – 2012-03-01 00:24:20

+0

@AaronBertrand - 你忘了逃避「它不存在」的單引號 – Bridge 2012-03-01 00:25:20