Holas gente.
Bueno, tuve un problema el día de ayer. Como parte del desarrollo de un algoritmo que permita cambiar de posición las palabras dentro de una cadena, me es indispensable saber cuantos espacios contiene la misma. Es decir, la siguiente cadena contiene 8 espacios: 'Vi una luz y escuche una voz en silencio'. Verdad!
Muy bien, ahora pasemos a la solución y desarrollo del mismo:
Código SQL:
Ver originalCREATE FUNCTION fnContarEspaciosEnBlanco (@Cadena VARCHAR(MAX))
RETURNS INT
AS
BEGIN
-- variables
DECLARE @COUNT INT, @IndexInicial INT, @IndexFinal INT, @Flag bit
-- inicializacion
SET @Flag = 'TRUE'
SET @IndexInicial = 1
SET @IndexFinal = 0;
SET @COUNT= -1;
-- contador de espacios
while (@Flag = 'TRUE')
BEGIN
SET @IndexFinal = ( SELECT CHARINDEX(' ', @Cadena, @IndexInicial ))
SET @COUNT += 1
SET @IndexInicial = @IndexFinal+1
IF @IndexFinal = 0
SET @Flag = 'FALSE'
END
-- retorno del resultado
RETURN @COUNT
END