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
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