Rekurzivni CTE za kreiranje datuma

Objavljeno: 05-03-2014 | Autor: Nenad Živković | Kategorija: T-SQL, Trikovi

Ознаке:, ,

0

Ukoliko vam je potrebno da izvučete sve datume u nekom periodu, to možete učiniti uz pomoć rekurzivnog CTE kome zadate početni i krajnji datum. U baznom delu se selektuje početni datum, a u rekurzivnom dodaje po jedan dan dok ne stigne do krajnjeg. Primer je u sledećem upitu:

Česta praktična primena ovako nečega je kada u svojoj tabeli imate rupe u datumima, odnosno datume za koje nemate svoje zapise, i potrebno vam je da se prikažu ili popune nekim vrednostima. Samo vežete OUTER JOIN-om svoju tabelu na jedan ovakav CTE i popunite NULL vrednosti svojim potrebnim podacima.

PS: Ukoliko vam je potrebno više od 100 dana ne zaboravite da dodate na kraju upita hint za ukidanje maksimalne rekurzije OPTION (MAXRECURSION 0)

Napišite komentar