Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/07/2013, 10:23
wilsonphillipps
 
Fecha de Ingreso: julio-2013
Ubicación: copiapo
Mensajes: 10
Antigüedad: 11 años, 4 meses
Puntos: 0
Pregunta Metodo Burbuja en sql server

bueno amigo soy nuevo en este foro y tengo el siguiente problema, tengo q hacer un procedimiento de almacenado para ordenar mi tabla de "n" cantidad de valores, como muchos saben en sql no existe el ciclo for asi q lo hice con while pero el procedimiento no me lo ordena. Este es el procedimiento que hice:
Código SQL:
Ver original
  1. CREATE PROCEDURE  OrdenarDatos
  2.  AS
  3.  BEGIN
  4.      DECLARE
  5.     @i INT = 1,
  6.     @j INT = 1,
  7.     @arreglo1  INT ,
  8.     @arreglo2  INT ,   
  9.     @n  INT
  10.      SET  @n =( SELECT  [COLOR="Magenta"]MAX (posicion)  FROM  Arreglo)
  11.    
  12.      WHILE (@i<@n-1)
  13.      BEGIN
  14.          WHILE (@j<@n-1)
  15.          BEGIN
  16.              SET  @arreglo1 =( SELECT  dato  FROM  Arreglo  WHERE  @j = posicion)
  17.              SET  @arreglo2 =( SELECT  dato  FROM  Arreglo  WHERE  (@j + 1) = posicion)
  18.              IF (@arreglo1>=@arreglo2)
  19.              BEGIN
  20.                  DECLARE
  21.                 @tem  INT  = @arreglo2
  22.                
  23.                  UPDATE  Arreglo
  24.                  SET  dato = @arreglo1
  25.                  WHERE  (@j+1)=posicion
  26.                
  27.                  UPDATE  Arreglo
  28.                  SET  dato = @tem
  29.                  WHERE  @j=posicion
  30.                
  31.                  SET  @j = @j+1
  32.                
  33.                  CONTINUE
  34.              END
  35.              SET  @j = @j+1
  36.          END
  37.          SET  @i = @i+1
  38.          CONTINUE
  39.      END
  40.  END

Segun yo el codigo esta bien los ciclos de repeticion orientados en el metodo burbuja, si podrian ayudarme se los agradeceria de antemano muchas gracias

Última edición por gnzsoloyo; 07/07/2013 a las 12:30 Razón: SQL si etiquetar y mal resaltado.