我有一个存储过程,它接受以逗号分隔的值列表作为参数
SELECT *
FROM users
WHERE username IN (SELECT value FROM STRING_SPLIT( @userList, ','))
我想更改 where 子句以对每个值使用 like
SELECT *
FROM users
WHERE username LIKE 'value1%'
OR username LIKE 'value2%' ...
我不确定该怎么做。有什么想法吗?
最佳答案
您不需要构建一个庞大的OR
条件列表,只需加入 LIKE
:
SELECT u.username, f.value
FROM dbo.users AS u
INNER JOIN SPLIT_STRING(@userList, ',') AS f
ON u.username LIKE f.value + '%';
https://stackoverflow.com/questions/72692682/