+++ Ciclos +++

21/02/2004 - 07:47 por Roberto Carlos Núñez | Informe spam
Hola, buen día!
Necesito corregir unos campos en una base de datos, los registros no son
continuos, pero cumplen con cierto criterio mediante la clásual SELECT.

Se me ocurre o creo que se podria utilizar un ciclo FOR o WHILE pero no sé
exactamente la sintaxis.

¿Alguien tiene algún ejemplo o explicación al respecto?


Gracias de antemano!
 

Leer las respuestas

#1 Javier Loria
21/02/2004 - 11:56 | Informe spam
Hola Roberto:
La sintaxis del WHILE es:
= WHILE (Condicion)
BEGIN
Codigo del Ciclo
END
= No existe un FOR en SQL. Ahora me parece que lo que quieres operar es
una condicion que se vaya aplicando fila por fila del SELECT, en este caso
NO te sirve el WHILE, lo que buscas en un CURSOR. La sintaxis del cursor es:
ÞCLARE NombreCursor CURSOR FOR *** Aqui el SELECT ***
OPEN NombreCursor
FETCH NEXT FROM NombreCursor
INTO (*** Aqui las Variables ***)
WHILE @@FETCH_STATUS = 0
BEGIN
*** Aqui Acciones ***
FETCH NEXT FROM NombreCursor
INTO (*** Aqui las Variables ***)
END
= Ahora en realidad muy rara vez queremos hacer alguna de estas sentencias
en SQL, y la razon es que SQL no es un lenguaje procedimental como Visual
Basic, C++, Java, etc, y preferimos usar operaciones que trabajan sobre el
conjunto de datos. Probablemente lo que quieres hacer tiene una sintaxis
como:
=UPDATE Tabla
SET Columna1ÊSE WHEN (Condicion1) THEN Valor1
WHEN (Condicion2) THEN Valor2
ELSE Valor3 END,
SET Columna2ÊSE WHEN (Condicion4) THEN Valor4
WHEN (Condicion5) THEN Valor5
ELSE Valor6 END
WHERE (Condicion 7)
= Este tipo de codigo es "mas SQL", y normalmente es cientos de veces mas
rapido que los primeros, claro es dificil de escribir porque exige un cambio
de mentalidad respecto a la programacion tradicional.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Roberto Carlos Núñez escribio:
Hola, buen día!
Necesito corregir unos campos en una base de datos, los registros no
son continuos, pero cumplen con cierto criterio mediante la clásual
SELECT.

Se me ocurre o creo que se podria utilizar un ciclo FOR o WHILE pero
no sé exactamente la sintaxis.

¿Alguien tiene algún ejemplo o explicación al respecto?


Gracias de antemano!

Preguntas similares