sql - 从逗号分隔的值列表构建 where 子句

我有一个存储过程,它接受以逗号分隔的值列表作为参数

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/

相关文章:

c - 函数参数在 C 中表现异常

node.js - 类型不可分配给 express-jwt 中的类型 'GetVerificatio

c - C语言中如何减少或替换else if语句?

python - 如何获取 Pandas 表中所有命名类别的最大值

python-3.x - 在python中将字符串写入文本文件

laravel - "npm run watch"不工作并返回错误 's saying ' 缺少 "

regex - 我在我的 CI/CD 设置中找不到 Gitlab 的测试覆盖解析设置

php - 如何确定数据是在 PHP 中增加还是减少

c - 打包的相同结构是否保证具有相同的内存布局?

regex - 用awk模拟 "grep -oE"的停止条件