¿Cómo recorro un conjunto de registros de una selección?
Digamos, por ejemplo, que tengo algunos registros que deseo recorrer y hacer algo con cada registro. Aquí hay una versión primitiva de mi selección:
select top 1000 * from dbo.table
where StatusID = 7
Gracias
sql
sql-server
Miedoso
fuente
fuente
Respuestas:
Al usar T-SQL y cursores como este:
fuente
Esto es lo que he estado haciendo si necesita hacer algo iterativo ... pero sería prudente buscar primero las operaciones establecidas.
fuente
Pequeño cambio en la respuesta de sam yi (para una mejor legibilidad):
fuente
select @TableID = (...)
declaración.Al usar el cursor, puede iterar fácilmente a través de registros individualmente e imprimir registros por separado o como un solo mensaje que incluye todos los registros.
fuente
Otro enfoque si está bien usando tablas temporales. Lo he probado personalmente y no causará ninguna excepción (incluso si la tabla temporal no tiene ningún dato).
fuente
COUNT(*)
y la segunda va deCOUNT(*)
1 a extraño.WHILE (@COUTNER <= @ROWID)
y no necesita disminuir@ROWID
en cada iteración. Por cierto, qué sucede si los mensajes de correo electrónicoROWID
en su tabla no son continuos (algunas filas se eliminaron previamente).Puede elegir clasificar sus datos y agregar un ROW_NUMBER y hacer una cuenta regresiva hasta cero mientras itera su conjunto de datos.
fuente
De esta manera podemos iterar en los datos de la tabla.
STRINGTOTABLE es una función definida por el usuario que analizará los datos separados por comas y devolverá la tabla. Gracias
fuente
Creo que este es el ejemplo de manera fácil de iterar un elemento.
fuente