2010-01-15 11 views
5

Possibili duplicati:
Parameterizing a SQL IN clause?
SQL Server SP - Pass parameter for “IN” array list?SQL ha un tipo di lista che può essere utilizzato in una clausola WHERE ... IN?

ho bisogno di cercare un insieme casuale di numeri interi su due diverse tabelle:

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) 

Esiste un tipo di elenco SQL può essere passato a IN in modo che non mi ripeta? PER ESEMPIO.

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

Creare un tavolo temporaneo mi viene in mente, ma sembra brutale.

+0

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

risposta

2

Sì, è possibile utilizzare uno table variable per questo. È come una tabella temporanea, ma con ambito locale.

1

Nessun tipo di elenco. La tabella temporanea dovrebbe andare bene o è possibile utilizzare una variabile di tabella.

1

Quando si utilizza MS-SQL, tendo a usare i documenti XML per questo scopo, che può essere facilmente superato da non -SQL client (a differenza delle tabelle temporanee, credo) e interrogati dalla sintassi T-SQL di MS-SQL.

Problemi correlati