假設存在具有其是多值的列AccessRights(例如,在它的值以這種格式STOLI表格中的多值列值比較,HELP,BRANCH(逗號分隔的字符串)在SQL數據庫表
現在一個存儲過程是針對這個表寫的,以便根據發送給SP的AccessRight參數獲取記錄。 讓參數爲@AccessRights,這也是一個逗號分隔的字符串,它可能具有像STOLI,BRANCH,HELPLINE等的值
現在我想比較參數@AccessRights的各個值與列AccessRights。
當前方法是我使用用戶定義函數分割分割逗號分隔字符串(@AccessRights)。 而我得到了一個表變量單值(只包含一列「accessGroup」),個體值在列名accessGroup下表變量,我用下面的代碼SP比較
Where AccessRights like '%'+accessGroup+'%'
現在,如果用戶傳遞參數(HELP,OLI)而不是(HELP,STOLI),則SP將提供輸出。 應該做什麼比較,以便該子字符串OLI不會給STOLI的輸出
它也適用於字符串中的最後一項嗎? – htaler 2010-03-25 12:43:45
爲什麼不呢?正如你所看到的,訣竅是在每個字符串周圍(逗號),然後做一個完整的字符串匹配而不是部分的(假設'accessGroup'不包含逗號 – van 2010-03-25 13:57:56