2009-08-28 7 views
0

J'utilise la fonction REGEXP_LIKE dans Oracle 10g pour trouver des valeurs dans une colonne avec le suffixe _ # (comme _1, _2, etc.). Je peux trouver _ # dans n'importe quelle partie de la valeur avec la requête ci-dessous mais puis-je retourner seulement des valeurs avec _ # à la fin?Expressions régulières _ # à la fin de la chaîne

SELECT * FROM Table WHERE REGEXP_LIKE (COLUMN,'_[[:digit:]]') 
+0

Si vous vous retrouvez coincé sur des choses comme ça, vous pouvez essayer de chercher une feuille de triche d'expressions régulières. Vous devrez vous assurer que vous en obtenez un qui correspond à votre saveur particulière, mais il est alors très facile de numériser une seule page pour "$ Fin de ligne". – Cascabel

Répondre

11

Bien sûr. Utilisez ...

SELECT * FROM Table WHERE REGEXP_LIKE (COLUMN,'_[[:digit:]]$') 

Le caractère $ correspond à "la fin de la chaîne."

+0

MERCI !! Je pensais que j'allais passer du temps avec mon livre "Mastering Regular Expressions". Toujours sur la liste des choses à faire mais pour un autre jour. – caddis

+0

Vous devriez vraiment vraiment vraiment lire ce livre. Comprendre regex est une contribution majeure à la productivité des codeurs. – APC

2

Pas besoin d'utiliser reg exps.

select * from table where substr(column,-2) between '_0' and '_9'; 
+0

Très cool merci de l'avoir posté. – caddis

Questions connexes