Consulta nombre con solo 3 vocales

Quisiera saber como puede hacer una consulta que tenga 3 vocales [aeiou]
Ejemplo:
|CAMPONOMBRE|
Carina>>>tiene tres vocales
Edgardo>>tiene tres vocales.
E intentado contar las vocales pero no se como hacerle, bueno espero me haya explicado.
Alguien por aquí me paso esto, pero me quivoque al preguntar:
Nombre like '%[aeiou]%[aeiou]%[aeiou]%'
Esto funciona para que sean mínimo 3 vocales.
Yo necesito el que sean exactamente 3.

1 respuesta

Respuesta
2
Para verificar que hay exactamente 3 vocales en el campo, la consulta puede utilizar las funciones LEN (longitud de cadena) y REPLACE (reemplazar un patrón en una cadena). Sería algo parecido a lo siguiente:
----------------------------------------------------------------------------------------
SELECT CAMPONOMBRE FROM TABLANOMBRE WHERE LEN(CAMPONOMBRE) - LEN(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(CAMPONOMBRE,'a',''),'e',''),'i',''),'o',''),'u','')) = 3;
----------------------------------------------------------------------------------------
De esta manera te aseguras que solo hay 3 vocales (si quieres otro número de vocales bastaría con cambiar el 3 por el número de vocales que busques). La función REPLACE, a priori, no distingue mayúsculas de minúsculas, pero si quieres asegurarte, puedes poner LOWER(CAMPONOMBRE).
Espero que esta respuesta sea lo que necesitabas. Si es así te agradecería que puntuaras la pregunta. Si te surge alguna otra consulta no dudes en comentarla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas