2010-11-15 6 views
0

Je dois retourner tous les noms de personnes qui contiennent certaines lettres, ou une combinaison de lettres.sql simple question aide

par exemple

names = bob, mary, nick 

noms de retour avec la lettre "b"

returns bob 

noms de retour par la lettre "ar"

returns mary 

si

SELECT name 
FROM people 
WHERE ??? 
+0

Ces noms sont-ils dans une seule colonne, par ex. séparés par des virgules à l'intérieur d'une colonne ?? Ce serait vraiment un très mauvais design pour une base de données SQL .... –

+0

non, les valeurs sont atomiques, chaque nom a son propre espace avec dans la colonne –

Répondre

0
WHERE name LIKE '%ar%'

pour MS-Access, utilisez

WHERE name LIKE '* ar *'
Ignorez les espaces entre * et 'ar'. Voir http://office.microsoft.com/en-us/access-help/like-operator-HP001032253.aspx

+0

hmmm. ça ne fonctionne pas avec la base de données qu'on nous a donné dans microsoft accéder au nom de la table tous "-" dans eux donc les noms doivent être placés entre crochets, cela pourrait être un problème –

+0

nous supposons tous que vous avez une table appelée " personnes ", avec une colonne appelée" nom ", est-ce exact? Si oui, les échantillons que nous vous avons présentés devraient fonctionner. Pouvez-vous donner plus de détails, comme le type de base de données, et quel outil vous utilisez pour essayer cette requête. – KBoek

+0

c'est juste l'éditeur sql en accès. je suis allé à SELECT [people-name] FROM personnes, qui fonctionne, mais quand je dis où [nom-des-gens] LIKE '% ar%'; ça ne marche pas –

0
SELECT name 
FROM people 
WHERE name like '%ar%'

% est comme "ce que jamais"
vous pouvez utiliser LIKE et % juste pour les champs de chaîne

0

Utilisez 'comme' opérateur en utilisant que vous pouvez le faire

0
WHERE NAME LIKE '%<letter-or-string>%' 
0
SELECT name 
FROM people 
WHERE name like '%ar%' ----returns Mary 

WHERE name like 'b%' ----returns bob 

WHERE name like '%k' ----returns nick 

Remarque: N'exécutez pas toutes les conditions «où» ensemble.