Pregunta

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

¿Qué pasa si la lista está en una columna?

Trato esto error:

Select a, b, c from a in b

Lo siento por no aclarar mi pregunta.

No se trata de unirse a o en (b seleccionar de la tabla)

Columna b tipo es nvarchar, datos es una lista, como este '1,2,5'

Columna un tipo es int.

No hay solución correcta

Otros consejos

Después de leer su pregunta, esto es lo que quiere:

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)

Eso debería hacerlo.

Muchas de las respuestas que apuntan en la dirección correcta, pero creo que éste realmente funciona:

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

Puede acelerar este proceso mediante la aplicación se inicia B y termina con una coma. O mejor aún, normalizar la base de datos y mover la columna B a su propia mesa con una relación de uno a muchos.

En SQL, una columna es normalmente de uno de los llamados tipos de datos "escalar": números, fecha / hora, secuencias - véase, por ejemplo MSDN. Si usted explica mejor en qué sentido se tiene "una lista" en la columna b, y cómo, por ejemplo, nos muestran la declaración CREATE TABLE a, que tal vez podemos ayudar mejor!

¿Necesita ayuda para consultas SQL, que coincide con una lista de parámetros de procedimiento almacenado en las columnas individuales . Se muestra cómo escribir una UDF que se llevará a su columna "lista" y devolver una tabla que se puede utilizar para unirse contra el que usted está seleccionando.

Creo que desee unirse a las tablas?

SELECT a, b, c
FROM a
JOIN b ON a.ID=b.ID
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top