Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/08/2013, 09:00
Avatar de JoseLian
JoseLian
 
Fecha de Ingreso: agosto-2013
Mensajes: 8
Antigüedad: 10 años, 8 meses
Puntos: 0
De acuerdo Contar espacios en una cadena

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 original
  1. CREATE FUNCTION fnContarEspaciosEnBlanco (@Cadena VARCHAR(MAX))
  2. RETURNS INT
  3. AS
  4. BEGIN
  5. -- variables
  6. DECLARE @COUNT INT, @IndexInicial INT, @IndexFinal INT, @Flag bit
  7. -- inicializacion
  8. SET @Flag = 'TRUE'
  9. SET @IndexInicial = 1
  10. SET @IndexFinal = 0;
  11. SET @COUNT= -1;
  12. -- contador de espacios
  13. while (@Flag = 'TRUE')
  14. BEGIN
  15.         SET @IndexFinal = ( SELECT CHARINDEX(' ', @Cadena, @IndexInicial ))
  16.         SET @COUNT += 1
  17.         SET @IndexInicial = @IndexFinal+1
  18.         IF @IndexFinal = 0
  19.             SET @Flag = 'FALSE'
  20. END
  21. -- retorno del resultado
  22. RETURN @COUNT
  23. END

Última edición por gnzsoloyo; 08/08/2013 a las 11:05