Klauzula WITH oraz UNION ALL pozwala na uzyskanie pętli.



Wybrać coś z czegoś czy z czegoś coś. Takie rozważania swego czasu opisałem.
Klauzula WITH oraz UNION ALL pozwala na uzyskanie pętli.
Taką pętle wykorzystałem do rozkładania ciągu znaków podzielonego średnikami na osobne kolumny. To sprawa opisana tu:
Ale najprościej to można podejrzeć, poćwiczyć na wyprodukowaniu sobie kalendarza.
Obrazek, kwerenda i drobny opis jest tutaj.


KWERENDA:


WITH kalendarz (numer, data)

AS ( SELECT 1, convert(date, '2012-01-01')
     UNION ALL 
     SELECT numer+1, dateadd(day, 1, data)
     FROM kalendarz WHERE data<'2012-01-31'
     )

SELECT *  FROM kalendarz

OPTION    (maxrecursion 400) ; 


-- to jest potrzebne, gdy dni chcemy dużo więcej uzupełnić niż 100,
-- bo domyślnie jest ograniczenie
-- do rekurencji 100



Brak komentarzy:

Prześlij komentarz