我正在创建一个函数,我必须将多个 Id(假设 A.id)(int)作为逗号分隔(如 (2,3) 值)传递,结果将是与这些 ID 相关的值(int)。假设如果我通过了 (2,3),结果应该是 (8,9,7,5)。

declare @roleid varchar(max)
set @roleid=(select mr.Id from M_Organization mo
join m_role mr on mr.Id=mo.RoleId
cross apply STRING_SPLIT ('3,4', ',') cs WHERE mo.Id IN (cs.value)
)
select @roleid

它显示以下错误:

最佳答案

你可以试试这个

declare @roleid varchar(max)
set @roleid=(select top 1 mr.Id from M_Organization mo
join m_role mr on mr.Id=mo.RoleId
cross apply STRING_SPLIT ('3,4', ',') cs WHERE mo.Id IN (cs.value)
)
select @roleid

关于sql - 有没有其他方法可以编写这个查询?(我得到 "Subquery returned more than 1 value error",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54567060/

10-09 07:22