下面有SQL代码,其中@省输入参数以这种形式存在:“”中区“、”中部地区“、”特拉华州“、"Drenthe”、“东开普省”、“自由州”、"Gauteng“、"Hardap地区”、“哈里亚纳”、"Karas区域“、"KwaZulu Natal”、"KwaZulu-Natal“、"Limpopo”、"Lorestan省“、"Mpumalanga”、“西北”、“北开普省”、“宾夕法尼亚”、"Qarku i Tiran s“,“里约热内卢州”、“托斯卡”、“韦斯-卡普”、“西开普省”“然而,当我测试我的SQL时,我没有得到任何返回的行。请协助。
WITH ProvinceList as (
SELECT CAST (value AS nvarchar) name FROM STRING_SPLIT(SUBSTRING(@Provinces, 3, LEN(@Provinces)-3), ',')
)
SELECT {Site}.*
FROM {Site}
WHERE ({Site}.[Province] IN -- Get all Province names in list sent
(SELECT name
FROM ProvinceList))
ORDER BY {Site}.[Name] ASC 发布于 2020-10-21 12:59:01
在STRING_SPLIT之后,您的列表将包含像“东开普省”和“自由州”这样的名字,其引号为。很可能表中没有引号,因此需要从输入中删除这些字符。
SET @Provinces = REPLACE(@Provinces, '"', '')
WITH ProvinceList as (
SELECT CAST (value AS nvarchar) name FROM STRING_SPLIT(SUBSTRING(@Provinces, 2, LEN(@Provinces)-2), ',')
)https://stackoverflow.com/questions/64459724
复制相似问题