我正在構建一個暗示性的標記系統(聽起來很劃痕),我將一個字符串傳遞給數據庫,如果有匹配,它會發回該標記。我想停止重複的標籤,所以如果一個標籤是WEB,我只希望它被返回一次。因此,如果我將WEB作爲標籤,然後添加WEEKLY,則鍵入「WE」不會再提示WEB作爲建議。SQL Server 2008 NOT IN()似乎失敗
但是,似乎沒有工作。我發送當前標籤並使用NOT IN()刪除任何重複項。下面是SP代碼:
SELECT TOP 1 t.vTagName As vTagName
FROM Tags t
WHERE t.vTagName LIKE @vTagName+'%'
AND t.nTagPortalId = @nPortalId
AND t.vTagName NOT IN(@vCurrentTags)
ORDER BY vTagName ASC
而這正是獲得通過真實:
EXEC GetTagSuggest 'We','Web,Print,Design,Advertising,Revenue'
這個查詢的響應是vTagName =網頁。顯然,這不是一個正確的結果,因爲它應該是vTagName LIKE「我們」不在「網絡等...」。
在此先感謝!
這就是我在回答「分割字符串」時所說的。 – 2009-10-21 08:46:28
要將當前標記作爲拆分字符串傳遞給我(在傳統asp中):EXEC GetTagSuggest'Web','''Web'','Create'''。當選中時,返回:'Web','創建'。但是當像這樣傳入時:t.vTagName NOT IN(@vCurrentTags),它仍然不起作用。在SQL中如何分割字符串? – jamesmhaley 2009-10-21 09:11:55
@randolph:據我所知,但我需要更多的信息,一行:) – jamesmhaley 2009-10-21 09:13:33