0

我创建了一个下拉列表,根据搜索框中的值进行过滤。但是,我只能搜索一个字段,并且我想搜索多个字段。

我使用此查询使使用搜索框成为可能

where upper(ds_in) LIKE upper('%'+@Psearch+'%') or ISNULL(LEN(@Psearch),0)=0

但它只允许我搜索一个值,我想搜索更多。就像想象你正在寻找两个国家:

搜索框:ITALY,SPAIN

4

1 回答 1

1

假设您的参数是一个简单的逗号分隔值列表,那么您可以使用string_split()然后加入结果。

以您的国家/地区列表为例...

DECLARE @PSearch varchar(max) = 'Italy , spa'

SELECT * FROM myCountryTable c 
    JOIN string_split(@PSearch, ',') s 
        ON c.myCountryName like '%' + LTRIM(RTRIM(s.value)) + '%'

这将返回任何匹配%Italy%%spa%

于 2021-04-20T17:12:49.320 回答