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

?? Manejo de cadenas y numero al azar de 7 crifras

Estas en el tema de ?? Manejo de cadenas y numero al azar de 7 crifras en el foro de SQL Server en Foros del Web. Hola! Necesito ayuda con dos cosas simples: Tengo dos campos, uno "NombYapell" y otro "Documento" En NombYapell tengo nombre y apellido y en Documento un ...
  #1 (permalink)  
Antiguo 06/04/2011, 14:18
Avatar de Frehley  
Fecha de Ingreso: junio-2005
Ubicación: Somewhere between Heaven and Hell
Mensajes: 415
Antigüedad: 18 años, 10 meses
Puntos: 0
Pregunta ?? Manejo de cadenas y numero al azar de 7 crifras

Hola! Necesito ayuda con dos cosas simples:

Tengo dos campos, uno "NombYapell" y otro "Documento"

En NombYapell tengo nombre y apellido y en Documento un numero de 7 cifras

Necesito ayuda para que en NombYapell se inviertan las palabras, por ejemplo, si dice "Juan Perez" pase a ser "Perez Juan". Y en Documento necesito que se genere al azar un numero de 7 cifras.

No creo que sea demasiado complicado, pero no soy muy bueno con SQL asi que quizas alguno me pueda dar una mano

Muchas gracias!
__________________
diegoz.com.ar
  #2 (permalink)  
Antiguo 06/04/2011, 16:25
 
Fecha de Ingreso: junio-2006
Mensajes: 109
Antigüedad: 17 años, 9 meses
Puntos: 2
Respuesta: ?? Manejo de cadenas y numero al azar de 7 crifras

Primero necesitas una funcion para hacer el split por el delimitador de tu texto que en tu ejemplo de "Juan Perez" es el espacio en blanco.

Código SQL:
Ver original
  1. CREATE FUNCTION dbo.fnSplit(
  2.     @sInputList VARCHAR(8000) -- List of delimited items
  3.   , @sDelimiter VARCHAR(8000) = ',' -- delimiter that separates items
  4. ) RETURNS @List TABLE (rowID  INT IDENTITY(1,1), item VARCHAR(8000))
  5.  
  6. BEGIN
  7. DECLARE @sItem VARCHAR(8000)
  8. WHILE CHARINDEX(@sDelimiter,@sInputList,0) <> 0
  9.  BEGIN
  10.  SELECT
  11.   @sItem=RTRIM(LTRIM(SUBSTRING(@sInputList,1,CHARINDEX(@sDelimiter,@sInputList,0)-1))),
  12.   @sInputList=RTRIM(LTRIM(SUBSTRING(@sInputList,CHARINDEX(@sDelimiter,@sInputList,0)+LEN(@sDelimiter),LEN(@sInputList))))
  13.  
  14.  IF LEN(@sItem) > 0
  15.   INSERT INTO @List SELECT @sItem
  16.  END
  17.  
  18. IF LEN(@sInputList) > 0
  19.  INSERT INTO @List SELECT @sInputList -- Put the last item in
  20. RETURN
  21. END
  22. GO
  23. -- Ejemplo
  24. DECLARE @Valor VARCHAR(1000)
  25. DECLARE @Delimitador VARCHAR(10)
  26. SET @Valor = ''
  27. SET @Delimitador = ' '
  28. SELECT @Valor = @Valor + item + @Delimitador FROM fnSplit('Juan Perez', @Delimitador) ORDER BY rowId DESC
  29.  
  30. SELECT SUBSTRING(@Valor,1, LEN(@Valor) +1) CadenaInversa


Segundo, tienes la generacion del numero random de 7 cifras...

Código SQL:
Ver original
  1. --Numero Random
  2. DECLARE @Random INT;
  3. DECLARE @UPPER INT;
  4. DECLARE @LOWER INT;
  5. DECLARE @Formato VARCHAR(7);
  6. DECLARE @Numero VARCHAR(7);
  7.  
  8. SET @LOWER = 1 -- Numero mas chico
  9. SET @UPPER = 9999999 -- Numero mas grande
  10. SET @Formato = '0000000' -- Formato
  11. SET @Random = ROUND(((@UPPER - @LOWER -1) * RAND() + @LOWER), 0)
  12. SET @Numero = RIGHT( @Formato + CAST(@Random AS VARCHAR(7)), 7)
  13. SELECT @Numero Random


Suerte
  #3 (permalink)  
Antiguo 07/04/2011, 06:13
Avatar de Frehley  
Fecha de Ingreso: junio-2005
Ubicación: Somewhere between Heaven and Hell
Mensajes: 415
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: ?? Manejo de cadenas y numero al azar de 7 crifras

Muchisimas gracias! Funcionó perfecto! :D
__________________
diegoz.com.ar

Etiquetas: cadenas, manejo, numero
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:42.