2010-04-12 2 views
1

Dans SQL comment puis-je exclure un enregistrement s'il y a plus de 2 caractères après un tiret ..Dans SQL comment j'exclure un enregistrement s'il y a plus de 3 caractères après un tiret

Exemple Je veux seulement renvoyer les enregistrements qui correspondent aux suivantes AA00000-0

mais la table a également recoreds comme AA0000-000, AA0000000-00

J'ai besoin de retourner uniquement les enregistrements qui ont un seul chiffre après le tableau de bord

+2

Pour quelle base de données? La comparaison de chaînes n'est pas systématiquement prise en charge dans toutes les bases de données ... –

Répondre

0

COMME '% - [0-9]'

de remplissage de remplissage de remplissage de remplissage

0

En supposant SQL Server:

SELECT * FROM records WHERE id NOT LIKE '%-[0-9][0-9]%' 
+1

Cela donnerait deux caractères après le tiret – HLGEM

+0

S'il vous plaît pouvez-vous élaborer. Il doit exclure les enregistrements avec 2 chiffres ou plus après un tiret. –

0

Utilisez une déclaration comme.

Field Like '%-[0-9]'

0

Quelle base de données utilisez-vous?

En MSSQL, vous pouvez: where fld not like '%-__'

2

Comme mentionné, la correspondance des chiffres ne correspond pas dans les bases de données.

Pour SQL Server, vous pouvez faire:

MyColumn LIKE '%-[0-9]' (va l'obtenir avec seulement un chiffre après le tableau de bord)

Base de données agnostique:

MyColumn LIKE '%-_' (correspondrait à un chiffre ou 1 lettre après le tiret, mais cela peut être suffisant)

+0

+1/2 pour être agnostique, et +1/2 pour interpréter "un seul chiffre après le tiret" pour éventuellement inclure un seul caractère après le tiret. – MJB

0

merci pour toutes les réponses, la solution que j'ai utilisée était

Like '%-_' 

Le trait de soulignement unique représente le premier chiffre après le tableau de bord

Questions connexes