17 Şubat 2016 Çarşamba

Sql Cursor Örnekleri

select lastname, firstname from employees

order by lastname, firstname

declare contact_cursor scroll cursor for

select lastname, firstname from employees

order by lastname, firstname

open contact_cursor


— en sondaki kayıt

fetch last from employee_cursor


–en sondaki kayıtta kaldıyda ondan bir öncekk kayıt

fetch prior from employee_cursor


— cursor ın bulunduğu yerden 2 ilerideki kayıt

fetch absolute 2 from employee_cursor


— bulunduğu yerden 3 sonraki kayıt

fetch relative 3 from employees_cursor

— bir sonrakine gider

FETCH NEXT FROM employees_cursor


— bulunduğu yerden 2 önceki kayıt

fetch relative 2 from employees_cursor


close employee_cursor

DEALLOCATE emloyee_cursor

go

— prior en son kayıtta kalır bi öncekine birini gönderiri o-kutur..


— absolute ileri iki sonda kayıt kalmadıysa başadöner ilk iki kayıdı okur cursomrı gördüğü yerden sayar.cursordan sonra sayama başlar

–realive ise kendisinin en son okuduğu yerden okumaya devam eder

–en sonda yazılan kod deallocate remi boşaltamya yarar.

–priordan sonra relative çalışırırsan priordan sonra saymaya başlar.



declare @empfirstname varchar(50),@emplastname varchar(50)


declare @empcursor cursor for

select lastname, firstname from employees

order by lastname, firstname


open @empcursor


fetch next from empcursor

into @emplastname,@empfirstname — selectde ne okuduyda ona göre sıralamak zorundayız

while @@fetch_status = 0

begin


print ’employee :’ + @empfirstname + ‘ ‘ @emplastname


fetch next from empcursor

into @emplastname,@empfirstname

end

close empcursor

deallocate empcursor

go

SELECT OD.PRODUCTID,SUM(OD.QUANTITY) AS ‘QUANTITY’,

SUM(P.UNITSINSTOCK) AS

CASE WHEN SUM(

FROM [ORDER DETAILS] OD INNER JOIN PRODUCTS P

ON OD.PRODUCTID = P.PRODUCTID


SELECT * FROM KULLANICILAR


DECLARE @kullaniciID int,@adsoyad varchar(50), @kullanicitipi int


declare @temp_kullanicilar table

(kullaniciId int,

adsoyad varchar(50),

kullanicitipi int

)


declare kul_cursor cursor fast_forward read_only for


select kullanicilarId , adsoyad,kullanicitipi

from kullanicilar

order by 1 asc


open kul_cursor cursor

fetch next from kul_cursor

into @kullaniciId , @aysoyad, @kullanicitipi

while @@fetch_status


begin


if exists (select top 1 kullanicilarID from @temp_kullanicilar

where adsoyad = @adsoyad

begin

if (select kullanicitipi from @temp_kullanicilar

where adsoyad =@adsoyad)

end

end


close kul_cursor

deallocate kul_cursor

go



Sql Cursor Örnekleri

Hiç yorum yok:

Yorum Gönder