OK我有這一個答案可能很簡單,但我是一個問題,不知道如何做到這一點:
問:
如何使用與LIKE ?
爲什麼不重複:
嗯,我知道如果我有多個字符串,我可以使用OR檢查。但是,我不想這麼做。
問題闡釋:
我有一個SP用參數@path,現在我想發送的多個路徑,通過分隔符隔開,(避免調用SP多次)。我使用一個自定義函數分割字符串,該函數返回一個帶有分割值的表。
現在我將如何去使用LIKE運算符使用該分離值表中的值。
我迄今所做的:
declare
@path varchar(max) = 'CompanyRules/Billing/IntegrationServices|CompanyRules/Reports/IntegrationServices',
@default_code varchar(max) = '1'
declare @tempTable TABLE(path varchar(max))
INSERT INTO @tempTable (path)
SELECT split from fn_splitby(@path, '|')
select prg.path, prg.default_code, prmd.optional_property_1, prmd.optional_property_2, prmd.optional_property_3, prmd.optional_property_4, prmd.optional_property_5, prmd.optional_property_6
from pdm_rule_group prg, pdi_rule_master prmd
where prg.path = prmd.path
AND prg.path in (select path from @tempTable)
AND prg.default_code != @default_code
的這不會產生任何結果。
可能的解決方案:
我雖然是我通過@tempTable必須循環,然後創建單獨的字符串與LIKE一起使用。這肯定是一個不好的解決方案,並可能有其他解決方案。
「以避免調用SP多次」 - 然後使用合適的數據結構 - 一個表值參數。不要將所有內容都放入'varchar(max)'中,只需要將其再次打開即可。 –