2010-01-15 7 views
5

duplicados posibles:
Parameterizing a SQL IN clause?
SQL Server SP - Pass parameter for “IN” array list?¿Tiene SQL un tipo de lista que se puede usar en una cláusula WHERE ... IN?

que necesitan para buscar un conjunto desordenado de enteros en dos tablas diferentes:

SELECT 
    col_1, col_2 
FROM 
    LIKES_NUMBERS 
WHERE 
    col_1 IN (1,2,3,5,7,1021,10041411) 

SELECT 
    col_one, col_two 
FROM 
    LIKES_NAMES 
WHERE 
    col_one IN (1,2,3,5,7,1021,10041411) 

¿Hay un tipo de lista SQL que se puede pasar a IN para que no me repita? P.EJ.

DECLARE @stuff UNOBTAINIUM(1,2,3,5,7,1021,10041411) 
-- ... 
WHERE col_1 IN (@stuff) 
-- ... 
WHERE col_one IN (@stuff) 

Me viene a la mente crear una tabla temporal, pero parece brutal.

+0

Duplicado: http://stackoverflow.com/questions/537087/sql-server-sp-pass-parameter-for-in-array-list –

Respuesta

2

Sí, puede usar un table variable para esto. Es como una tabla temporal, pero con alcance local.

1

No hay ningún tipo de lista. La tabla temporal debería estar bien o puede usar una variable de tabla.

1

Al usar MS-SQL, que tienden a utilizar documentos XML para este fin, que se puede pasar fácilmente de no -SQL clientes (a diferencia de las tablas temporales, creo) y consultados por la sintaxis T-SQL de MS-SQL.

Cuestiones relacionadas