in不能用参数赋值
可以用charindex函数代替
@Role赋值 ',1,2,3,4,'
也可以这样写
@Role赋值 '1,2,3,4'
还可以用自定义split函数
可以用charindex函数代替
|
1
|
SELECT
*
FROM
sys_User
WHERE
charindex(
','
+rtrim(RoleID) +
','
,@RoleID)>0
|
@Role赋值 ',1,2,3,4,'
也可以这样写
|
1
|
exec
(
"SELECT * FROM sys_User WHERE RoleID in ('"
+ @RoleID +
"')"
)
|
@Role赋值 '1,2,3,4'
还可以用自定义split函数
|
1
|
SELECT
*
FROM
sys_User
WHERE
RoleID
in
(
select
*
from
dbo.split(@RoleID,
','
))
|
本文介绍在 SQL 查询中当无法使用 IN 语句时的三种替代方案:使用 CHARINDEX 函数、动态 SQL 执行及自定义 SPLIT 函数实现多值查询。
7659

被折叠的 条评论
为什么被折叠?



