Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/11/2010, 10:42
leonardo_josue
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.