Domanda

Select a, b, c from table where a in (1, 2, 3)

Che cosa succede se la lista è in una colonna?

provo questo errore:

Select a, b, c from a in b

Ci scusiamo per non cancellare la mia domanda.

Non si tratta di unirsi o a (selezionare b da tabella)

Tipo di colonna B è di tipo nvarchar, i dati è una lista, come questo '1,2,5'

Column un tipo è int.

Nessuna soluzione corretta

Altri suggerimenti

Dopo aver letto la tua domanda, questo è ciò che si vuole:

SELECT
    a,b,c
FROM
    tblA
WHERE
    b LIKE CAST(a as nvarchar) + ',%'
    OR b LIKE '%,' + CAST(a as nvarchar) + ',%'
    OR b LIKE '%,' + CAST(a as nvarchar)

Che dovrebbe farlo.

Molte risposte che puntano nella giusta direzione, ma penso che questo sarà realmente funzionare:

SELECT a, b, c
FROM table
WHERE ',' + b + ',' LIKE '%,' + CAST(a as varchar) + ',%'

È possibile accelerare questo applicando inizia B e termina con una virgola. O meglio ancora, normalizzare il database e spostare la colonna B al proprio tavolo con una relazione uno-a-molti.

In SQL, una colonna è normalmente di uno dei cosiddetti tipi di dati "scalare": numeri, data / ora, Strumenti ad arco - si veda per es MSDN . Se spieghi meglio in che senso hai "una lista" nella colonna b, e come, per esempio ci mostrano la dichiarazione CREATE TABLE a, possiamo forse aiutare meglio!

Hai bisogno di aiuto query SQL, che corrispondono a un parametro di elenco di stored procedure contro singole colonne . Essa mostra come scrivere una funzione definita dall'utente che vi toglierà il colonna "lista" e restituire una tabella che è possibile utilizzare per unirsi contro di quello che si sta selezionando da.

Credo che si desidera unire le tabelle?

SELECT a, b, c
FROM a
JOIN b ON a.ID=b.ID
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top