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

Contar letras en campo

Estas en el tema de Contar letras en campo en el foro de SQL Server en Foros del Web. Hola que tal. Quiero que NO se puedan meter 2 o mas espacios en blanco juntos al llenar un campo con un (insert). Me parece ...
  #1 (permalink)  
Antiguo 07/05/2012, 17:55
 
Fecha de Ingreso: mayo-2008
Mensajes: 51
Antigüedad: 15 años, 11 meses
Puntos: 2
Pregunta Contar letras en campo

Hola que tal.

Quiero que NO se puedan meter 2 o mas espacios en blanco juntos al llenar un campo con un (insert). Me parece que seria mandar un RAISERROR para informacion al usuario dentro del procedimiento; pero no encuentro como contar los espacios en blanco de cierto campo.

ejemplo: la cadena "Pedro Perez" tiene 1 espacio en blanco
ejemplo: la cadena "Pedro Perez" tiene 2 espacios en blanco. mandar error.


Investigue las funciones de cadena. como CHAR O ASCII. pero no encuentro ejemplos de como hacer esto.

Agredesco mucho su ayuda si alguien me hechase la mano.

Saludos
  #2 (permalink)  
Antiguo 08/05/2012, 08:08
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 letras en campo

Código SQL:
Ver original
  1. DECLARE @cadena VARCHAR(20)
  2. DECLARE @pos INT
  3. SET @cadena='Juan Perez'
  4. SELECT @pos=charindex(' ',@cadena,0);
  5. IF @pos>0
  6. BEGIN    
  7.     SELECT @pos=charindex(' ',@cadena,@pos+1);
  8.     IF @pos>0
  9.        print 'Cadena con 2 espacios en blanco'
  10.     ELSE
  11.         print 'Cadena con 1 espacio en blanco'
  12. END
  13. ELSE
  14.  print 'cadena sin espacios'
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: letras, procedimiento, campos
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 03:41.