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

contar espacios vacios

Estas en el tema de contar espacios vacios en el foro de SQL Server en Foros del Web. Hola buen dia. Mi problema es que tengo una cadena y me gustaria saber cuantos espacios vacion tiene, e intentado con un count pero no ...
  #1 (permalink)  
Antiguo 08/11/2010, 14:04
 
Fecha de Ingreso: octubre-2010
Mensajes: 31
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta contar espacios vacios

Hola buen dia.

Mi problema es que tengo una cadena y me gustaria saber cuantos espacios vacion tiene, e intentado con un count pero no me resulta se me ocurre un ciclo pero no se como implementarlo. ejemplo de la cadena "casa grande verde" me tiene que arrojar como resultado 2 espacios en blanco. si alguien me pudiera ayudar se los agradeceria mucho.

de antemano muchas gracias
  #2 (permalink)  
Antiguo 08/11/2010, 15:04
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 vacios

Con la funcion CHARINDEX, te puedes posicionar en el primer blanco y como bien dices, con un ciclo, volverte a posicionar en el siguiente blanco e ir contando.

http://technet.microsoft.com/es-es/l.../ms186323.aspx
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 08/11/2010, 15:05
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 vacios

Con la funcion CHARINDEX, te puedes posicionar en el primer blanco y como bien dices, con un ciclo, volverte a posicionar en el siguiente blanco e ir contando.

http://technet.microsoft.com/es-es/l.../ms186323.aspx
__________________
MCTS Isaias Islas
  #4 (permalink)  
Antiguo 09/11/2010, 15:12
 
Fecha de Ingreso: octubre-2010
Mensajes: 31
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: contar espacios vacios

Hola un amigo me ayudo a realizar el conteo de espacios en blanco, creo que es muy util y por eso la comparto con ustedes:

declare
@contri varchar (30),
@espacios varchar (20),
@espacios varchar(20)
set @contri= 'casa grande verde'
set @espacios=replace(@contri,' ','')
select len(@contri) - len(@espacios)
  #5 (permalink)  
Antiguo 09/11/2010, 17:49
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 vacios

Pues si, funciona

Solo quita la doble declaracion de @espacios.

Gracias por compartir
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 10/11/2010, 10:42
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: contar espacios vacios

Cita:
Iniciado por luisalberto_tg Ver Mensaje
Hola un amigo me ayudo a realizar el conteo de espacios en blanco, creo que es muy util y por eso la comparto con ustedes:

declare
@contri varchar (30),
@espacios varchar (20),
@espacios varchar(20)
set @contri= 'casa grande verde'
set @espacios=replace(@contri,' ','')
select len(@contri) - len(@espacios)
Hay un pequeño detalle con esta forma de contar caracteres que puede traer problemas y es que la función LEN no toma en cuenta los espacios al final de la cadena, de tal manera que si tienen esto:

Código SQL:
Ver original
  1. DECLARE
  2. @contri VARCHAR (30),
  3. @espacios VARCHAR(20)
  4. SET @contri= 'casa grande verde           '
  5. SET @espacios=REPLACE(@contri,' ','')
  6. SELECT len(@contri) - len(@espacios)

es decir con varios espacios en blanco después de la palabra "verde" el resultado seguirá siendo 2, lo cual no es correcto. La solución es utilizar la función DATALENGH o concatenar un caracter al final de la cadena antes de contar:

Código SQL:
Ver original
  1. --Con datalength
  2. DECLARE @contri VARCHAR (30), @espacios VARCHAR (20)
  3. SET @contri= 'casa grande verde        '
  4. SET @espacios = REPLACE(@contri,' ','')
  5. SELECT DATALENGTH(@contri) - DATALENGTH(@espacios)
  6.  
  7. --Agregando un caracter
  8. DECLARE @contri VARCHAR (30), @espacios VARCHAR (20)
  9. SET @contri= 'casa grande verde          '
  10. SET @espacios = REPLACE(@contri+'X',' ','')
  11. SELECT len(@contri+'X') - len(@espacios)

Saludos
Leo.
  #7 (permalink)  
Antiguo 10/11/2010, 11:33
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 vacios

Gracias Leo, pequeño detalle, pero tienes razon.

No solo serviria para contar los ESPACIOS, sirver para contar caracteres de repeticion, por ejemplo: "a"
__________________
MCTS Isaias Islas

Etiquetas: blancos, contar, espacios, vacios
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 02:49.