Question

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

Que faire si la liste est dans une colonne?

J'essaie ceci d'erreur:

Select a, b, c from a in b

Désolé pour ne pas effacer ma question.

Il est pas JOIN ou (sélectionnez b de la table)

Type colonne b est nvarchar, les données sont une liste, comme celui-ci '1,2,5'

La colonne est un type int.

Pas de solution correcte

Autres conseils

Après avoir lu votre question, voici ce que vous voulez:

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)

Cela devrait le faire.

De nombreuses réponses pointant dans la bonne direction, mais je pense que celui-ci va vraiment travailler:

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

Vous pouvez accélérer ce par l'application démarre B et se termine par une virgule. Ou mieux encore, normaliser la base de données et déplacer la colonne B à sa propre table avec un à-plusieurs.

Dans SQL, une colonne est normalement d'un des soi-disant types de données « scalaires »: numéros, date / heure, cordes - voir par exemple MSDN . Si vous expliquez mieux dans quel sens vous avez obtenu « une liste » dans b de colonne, et comment, par exemple nous montre la déclaration de CREATE TABLE a, nous pouvons peut-être vous aider à mieux!

Voir besoin d'aide de requêtes SQL, correspondant à un paramètre de liste de procédure stockée contre des colonnes individuelles . Il montre comment écrire une UDF qui prendra votre « liste » colonne et retourner une table que vous pouvez utiliser pour rejoindre contre celui vous choisissez de.

Je pense que vous voulez joindre les tables?

SELECT a, b, c
FROM a
JOIN b ON a.ID=b.ID
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top