Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL usa valores separados por vírgula com cláusula IN


Aqui está uma workaround Eu encontrei para fazer o que você está tentando alcançar
CREATE Procedure [dbo].[sp_getUserRoles](
   @pGroupIDs varchar(50)
    )
     As
    BEGIN
        SELECT * FROM CheckList_Groups Where (',' + @pGroupIDs +',' LIKE '%,' + CONVERT(VARCHAR, id) + ',%')
   End

Isso obtém sua lista delimitada por vírgulas e a compara com os id's (que são representados assim ',1,' , ',2,' etc) na tabela usando LIKE