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