Je suis en train de créer une fonction où je dois passer plusieurs identifiants (supposons A.id) (int) séparés par des virgules comme (2,3) et le résultat sera les valeurs (int) liées à ces identifiants. Supposons que si je passe (2,3) le résultat devrait être comme (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
Il affiche l'erreur suivante :
La sous-requête a retourné plus d'une valeur. Ceci n'est pas autorisé lorsque la requête sous-requête suit =, !=, <, <= , >, >= ou lorsque la sous-requête est utilisée comme une expression.