Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/04/2011, 16:25
juantiva
 
Fecha de Ingreso: junio-2006
Mensajes: 109
Antigüedad: 17 años, 10 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