Hola,
mando a un store procedure un nvarchar que contiene números separados
por coma :'4,5,16,3,45' .
El problema viene cuando intento en la Select meterlo dentro de un
WHERE nombre columna IN () . Me dice que no puede convertir un
nvarchar en un INT.
El ejemplo de abajo me ha funcionado(os paso tb el que no funciona) ,
pero el nvarchar solamente trae dos numeros separados por comas, el
problema es que hay veces que necesitaré mandar hasta 25 valores.
¿Se os ocurre algo?
NO FUNCIONA
declare
@id_areas nvarchar(1000),
BEGIN
SELECT @id_areas='3,5'
SELECT T_Usuario.id_usuario, T_Usuario.usu_codigo,
T_Usuario.usu_nombre, T_Usuario.usu_apellidos,
T_Usuario.usu_descripcion,T_Usuario.usu_estado,T_Usuario.usu_email,
T_Usuario.usu_entidad
FROM T_Usuario INNER JOIN T_NMP_Usuario_Perfil_Entidad ON
T_Usuario.id_usuario = T_NMP_Usuario_Perfil_Entidad.id_usuario
WHERE T_NMP_Usuario_Perfil_Entidad.id_area_entidad IN (@id_areas)
end
FUNCIONA
declare
@id_areas nvarchar(1000),
@id1 int,
@id2 int
BEGIN
SELECT @id_areas='3,5'
Select @id1 = CAST(SUBSTRING(@id_areas, 1, 1)AS INT)
SELECT @id2 = CAST(SUBSTRING(@id_areas, 3, 1)AS INT)
SELECT T_Usuario.id_usuario, T_Usuario.usu_codigo,
T_Usuario.usu_nombre, T_Usuario.usu_apellidos,
T_Usuario.usu_descripcion,T_Usuario.usu_estado,T_Usuario.usu_email,
T_Usuario.usu_entidad
FROM T_Usuario INNER JOIN T_NMP_Usuario_Perfil_Entidad ON
T_Usuario.id_usuario = T_NMP_Usuario_Perfil_Entidad.id_usuario
WHERE T_NMP_Usuario_Perfil_Entidad.id_area_entidad IN (@id1,@id2)
end
Leer las respuestas