Mas ejemplos de cursores


Este ejemplo concatena valores de diferentes filas en una.
Estoy usando cursores de SQL Server para dicho fin. Para más ejemplos sobre cursores haga click AQUÍ
Mi tabla se llama colores.
Con la siguiente estructura:



CREATE TABLE [dbo].[colores](
     [color] [nchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]


Y los siguientes datos:

rojo      
amarillo  
verde     
azul    

Ahora, lo que voy a hacer es que me muestren las columnas concatenadas. Para eso necesito un cursor. El cursor es una forma de ir fila por fila para unir luego datos:


--Declarar cursor
DECLARE color_Cursor CURSOR FOR
SELECT color
FROM dbo.colores
OPEN color_Cursor
--Declarar color y la variable que almacena todos los cursores
DECLARE @color varchar(30)
DECLARE @todoscolores varchar(300)
set @todoscolores=''

FETCH NEXT FROM color_Cursor into @color
WHILE @@FETCH_STATUS <> -1
BEGIN
set @todoscolores=@todoscolores+@color

FETCH NEXT FROM color_Cursor into @color

END
select @todoscolores as Colores
--Cerrar cursores
CLOSE color_Cursor
DEALLOCATE color_Cursor
GO

El resultado final son los colores concatenados.
rojo      amarillo  verde     azul   


   





Comentarios

  1. Hola Daniel,
    Aunque tu ejemplo es didactico para mostrar el uso de cursores, deberias tambien mostrar la manera de hacer lo mismo sin cursores, que es lo mas recomendable y mas rapido.

    Salu2

    Victor Bocanegra

    ResponderEliminar
  2. Daniel. Sou brasileira, historiadora, ministro aulas no ensino médio de uma escola pública. Estava pesquisando sobre tecnologia de informação e procurava informações sobre a Jalasoft, tal é a sua importância em toda a América Latina, e encontrei esse blog. Achei extremamente interessante a maneira como você desenvolve os textos e ensina.

    ResponderEliminar
  3. Muito obrigado.
    você tem dúvidas?

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Detectar el usuario de Windows utilizando C#

La página oficial del dólar blue en Bolivia

Lo nuevo de SQL Server 2008 respecto a SQL Server 2005