Cita:
Iniciado por luisalberto_tg 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 originalDECLARE
@contri VARCHAR (30),
@espacios VARCHAR(20)
SET @contri= 'casa grande verde '
SET @espacios=REPLACE(@contri,' ','')
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--Con datalength
DECLARE @contri VARCHAR (30), @espacios VARCHAR (20)
SET @contri= 'casa grande verde '
SET @espacios = REPLACE(@contri,' ','')
SELECT DATALENGTH(@contri) - DATALENGTH(@espacios)
--Agregando un caracter
DECLARE @contri VARCHAR (30), @espacios VARCHAR (20)
SET @contri= 'casa grande verde '
SET @espacios = REPLACE(@contri+'X',' ','')
SELECT len(@contri+'X') - len(@espacios)
Saludos
Leo.