2009-11-03 8 views
3

J'ai une fonction dans SQL Server 2008 qui prend une chaîne: 'A, B, C, D' et la scinde et crée une table des valeurs.SQL Server Select Où valeur LIKE (valeur de table temporaire)

Values 
------ 
A 
B 
C 
D 

Je veux maintenant rechercher une table (Utilisateurs) Lorsqu'une valeur de la colonne est comme une des lignes (nom) dans le tableau ci-dessus.

C'est ce que je voudrais faire:

SELECT * FROM Users WHERE vLastName LIKE 'A%' 
SELECT * FROM Users WHERE vLastName LIKE 'B%' 
SELECT * FROM Users WHERE vLastName LIKE 'C%' 
SELECT * FROM Users WHERE vLastName LIKE 'D%' 

Si ce qui précède n'est pas possible, sinon comment voulez-vous le faire? Une sorte de boucle?

J'utilise SQL Server 2008

+0

Pourquoi êtes-vous exécutaient 4 fois? Pourquoi ne pas simplement utiliser "OU"? – Faruz

+0

Désolé, j'aurais dû le préciser, je passe en 'A, B, C, D'. Donc, il doit être divisé dynamiquement. Pourrait être n'importe quoi: 'E, F, G, H' etc ... – jamesmhaley

Répondre

2
SELECT * FROM Users,NewTable WHERE vLastName LIKE Values + '%' 
+0

Les deux réponses fonctionnent comme un régal, mais est allé avec celui-ci. – jamesmhaley

2
SELECT * from Users u 
JOIN StringSplitterResult r on r.Values = SUBSTRING(u.vLastName, 1,1) 
Questions connexes