Select * from DUAL;
I już widzisz co to jest. To ma baza produkcji ORACLE. Jest
to tabelka, która ma jedno pole DUMMY, jeden rekord, a w nim X. Po co to?
Bo jak wiesz konstrukcja ogólna, bardzo uproszczona
zapytania do bazy jest następująca: SELECT ……. FROM NAZWA_TABELI;
Jeżeli chciałbyś na przykład dostać tą drogą wynik takiego
działania: 2 + 4 * 12 to jak? No to piszemy:
SELECT 2 + 4 * 12 FROM ….. Jaką podasz nazwę tabeli, jak
podasz jakąś dowolną to wynik działania wyświetli się tyle razy ile jest
rekordów w tabeli, a Ty chcesz tylko wynik działania i to raz. No to ktoś wpadł
na pomysł utworzenia tabelki DUAL i to zawsze do niej można się w takich
sytuacjach odwołać, wynik będzie tylko raz.
Na obrazku zaprezentowałem Ci Marcinie jak wygląda DUAL
-> zapytania i wynik z numerem 1.
Wykorzystanie tabeli DUAL do uzyskania wyniku działania to zapytanie i wynik z
numerem 2. I jeszcze jeden bajer, który jest
dostępny na bazie ORACLE.
Czy wiesz ile jest miesięcy pomiędzy 12 grudnia 2001 a 3
lutym 2015. I nie o to chodzi by obliczyć liczbę dni i później dzielić przez …
no właśnie, przez 30 czy przez średnią liczbę dni w miesiącu. Wiemy przecież,
iż pomiędzy 30 listopadem 2014 a 31 marca 2015 roku są cztery miesiące i tyle.
To na bazie ORACLE działa funkcja MONTHS_BETWEEN, która policzy miesiące
pomiędzy datami właśnie tak jak my.
I ile jest tych miesięcy pomiędzy ww. datami …. Prawie 166,
zapytanie w i wynik z numerem 3 na obrazku :-)
A po co to, po co takie „szczególarstwo”. Ano po to, iż
wyobraź sobie, iż w ustawie masz napisane: termin na ….. 3 miesiące od daty
stempla pocztowego. To by sprawdzić czy jesteś w terminie to nie możesz sobie
dzielić liczby dni pomiędzy datami przez 30, bo to będzie szacunkowa liczba
miesięcy, niejako „na oko” :-)
W.
Brak komentarzy:
Prześlij komentarz