A menudo tengo este requisito, y SOMETIME, si conoce muy bien la columna que está buscando en [el tamaño/formato/longitud], puede hacer una especie de REGEX.
Algo como esto:
DECLARE @MyListOfLocation varchar(255)
set @MyListOfLocation = '|1|32|36|24|3|'
Select LocationID
from Table
where @MyListOfLocation like '%|' + LocationID + '|%'
NOTA: el carácter de barra vertical se utiliza para proteger la consulta de devolver cualquier LocationID que contiene un único carácter (el '1', por ejemplo).
Aquí es un ejemplo de trabajo completo:
DECLARE @MyListOfLocation varchar(255)
set @MyListOfLocation = '|1|11|21|'
SELECT LocationName
FROM (
select '1' as LocationID, 'My Location 1' as LocationName
union all
select '11' as LocationID, 'My Location 11' as LocationName
union all
select '12' as LocationID, 'My Location 12' as LocationName
union all
select '13' as LocationID, 'My Location 13' as LocationName
union all
select '21' as LocationID, 'My Location 21' as LocationName
) as MySub
where @MyListOfLocation like '%|' + LocationID + '|%'
ADVERTENCIA! ¡Este método no es amigable con el índice!
Si no desea añadir un poco de IN (@MyListOfLocation) en todo lo que, para aprovechar el uso de los índices, puede modificar la secuencia de comandos para hacer:
SELECT MyDATA.*
FROM HugeTableWithAnIndexOnLocationID as MyDATA
WHERE LocationID in (
Select LocationID
from Table
where @MyListOfLocation like '%|' + LocationID + '|%')
posible duplicado de [SP de SQL Server - Pase de parámetros para la lista de arreglos "IN"?] (http://stackoverflow.com/questions/537087/sql-server-sp-pass-parameter-for-in-array-list) – Lamak
¿Ha considerado usar un [Parámetro de valor de tabla ] (http://msdn.microsoft.com/en-us/library/bb510489.aspx) en su lugar. Lo haría 'seleccionar Ubicaciones de la tabla donde Where ID de ubicación en (Seleccionar ubicación de @LocationList) ' –