Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Contar espacios en una cadena

Estas en el tema de Contar espacios en una cadena en el foro de SQL Server en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/08/2013, 09:00
Avatar de 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
  #2 (permalink)  
Antiguo 08/08/2013, 09:55
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Contar espacios en una cadena

__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 08/08/2013, 11:00
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Contar espacios en una cadena

Se me hace mas sencillo esto:

Código SQL:
Ver original
  1. DECLARE @contri VARCHAR (MAX), @espacios VARCHAR (MAX)
  2. SET @contri= 'Vi una luz y escuche una voz en silencio'
  3. SET @espacios = REPLACE(@contri,' ','')
  4. SELECT DATALENGTH(@contri) - DATALENGTH(@espacios)
__________________
MCTS Isaias Islas

Última edición por iislas; 08/08/2013 a las 11:40
  #4 (permalink)  
Antiguo 08/08/2013, 11:04
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Contar espacios en una cadena

Cita:
Iniciado por iislas Ver Mensaje
Se me hace mas sencillo eseto:

Código SQL:
Ver original
  1. DECLARE @contri VARCHAR (MAX), @espacios VARCHAR (MAX)
  2. SET @contri= 'Vi una luz y escuche una voz en silencio'
  3. SET @espacios = REPLACE(@contri,' ','')
  4. SELECT DATALENGTH(@contri) - DATALENGTH(@espacios)
jajajaja muy bueno amigo Iislas :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 08/08/2013, 11:38
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Contar espacios en una cadena

Algo se me tenia que pegar de usted, mi estimado Libras, el Master del T-SQL, ja (saludos)
__________________
MCTS Isaias Islas

Etiquetas: cadena, espacios, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:58.