Funciones definidas por el usuario – Ejemplo

Obtener la cantidad de vocales y consonantes de un texto

En una consulta a través de internet nos pidieron hacer una función que al darle una cadena de caracteres, reporte la cantidad de vocales y la cantidad de consonantes. Aquí la solución.

use Northwind
go

La función creada es como sigue:

Create function dbo.fduRetornaVocalesConsonantes (@Palabra nvarchar(200))   returns nvarchar(100)
As
Begin
-- Quitar todos los espacios a la palabra
Declare @Dato nvarchar(200), @Letra nvarchar(1)
set @Dato = Upper(Replace(LTRIM(RTRIM(@Palabra)),' ',''))
-- Para el bucle
Declare @Inicio int, @TotalVocales int, @TotalConsonantes int
set @Inicio = 1
Set @TotalVocales = 0
set @TotalConsonantes = 0
while @Inicio <= LEN(@Dato)
Begin
set @Letra = SUBSTRING(@Dato,@Inicio,1)
if @Letra in ('A','E','I','O','U')
Begin
Set @TotalVocales = @TotalVocales +1
End
Else
Begin
Set @TotalConsonantes = @TotalConsonantes +1
End
Set @Inicio = @Inicio +1
End
Declare @Resultado nvarchar(200)
Set @Resultado = 'La palabra ' + Upper(@Palabra) + ' tiene ' +
LTRIM(STR(@TotalVocales)) +' vocales y ' + LTRIM(Str(@TotalConsonantes)) + ' consonantes'
return @Resultado
End
go

Usando la función definida por el usuario
select dbo.fduRetornaVocalesConsonantes('Manual SQL Server Profesional')
go

El resultado es: 

La palabra MANUAL SQL SERVER PROFESIONAL tiene 10 vocales y 16 consonantes