Wielokrotnie podczas pracy z SQL’em na serwerze AS/400, czy to za pomocą interaktywnej sesji czy wbudowanych kwerend w kodzie RPG (tzw. embedded SQL), nie pamiętam nazwy czy składni niektórych funkcji wbudowanych. A specyfika SQL/400 różniąca się od standardu nie pomaga… Dlatego postanowiłem w jednym miejscu umieścić spis najważniejszych, czy też najczęściej wykorzystywanych. Mam nadzieję że się przyda. Mnie na pewno.
Podstawowe funkcje
MAX | Zwraca maksymalną wartość z wyniku zapytania |
MIN | Zwraca minimalną wartość z wyniku zapytania |
AVG | Zwraca średnią z wartości wyników zapytania |
SUM | Zwraca sumę wartości z wyniku zapytania |
COUNT | Zwraca liczbę elementów wyniku zapytania |
Funkcje numeryczne
ABS(N) | Zwraca wartość bezwzględna zmiennej N |
COS(A) / ACOS(A) SIN(A) / ASIN(A) TAN(A) / ATAN(A) | Podstawowe funkcje trygonometryczne |
CEILING(N) FLOOR(N) | Zwraca zaokrągloną w górę lub w dół wartość zmiennej N |
DEGREES(R) | Konwertuje wartość w radianach na stopnie |
RADIANS(D) | Konwertuje wartość w stopniach na radiany |
LN(N) LOG10(N) | Zwraca logarytm/ logarytm dziesiętny z podanej wartości |
Funkcje znakowe i łańcuchowe
CHAR(N) | Zwraca reprezentację znakową podanej liczby N |
CHAR_LENGTH(S) | Zwraca długość łańcucha znakowego |
CONCAT(S1, S2) | Łączy dwa podane ciągi znaków |
SUBSTR(S, I, L) | Zwraca łańcuch znaków z tekstu S, rozpoczynając od znaku I, długości L znaków |
LOWER(S) | Zwraca podany tekst w postaci małych liter |
UPPER(S) | Zwraca podany tekst w postaci wielkich liter |
TRIM(S) | Usuwa spacje zarówno z początku jak i z końca tekstu |
RTRIM(S) LTRIM(S) | Usuwa spacje z początku/końca tekstu |
Funkcje związane z datą i czasem
CURDATE() CURTIME() | Zwraca bieżącą datę/czas |
DATE(D) DATE(T) | Konwertuje łańcuch znakowy z datą/czasem do wartości daty/czasu |
DAY(D) | Zwraca dzień (1-31) z podanej daty |
WEEK(D) | Zwraca tydzień (1-54) z podanej daty |
MONTH(D) | Zwraca miesiąc (1-12) z podanej daty |
YEAR(D) | Zwraca rok z podanej daty |
DAYOFWEEK(D) | Zwraca numer dnia tygodnia z podanej daty gdzie 1 to niedziela |
DAYOFWEEK_ISO(D) | Zwraca numer dnia tygodnia z podanej daty gdzie 1 to poniedziałek |
DAYOFYEAR(D) | Zwraca numer dnia w roku (1-366) z podanej daty |
HOUR(T) | Zwraca godzinę (0-24) z podanego czasu |
MINUTE(T) | Zwraca minutę z podanego czasu |
SECOND(T) | Zwraca sekundę z podanego czasu |
MICROSECOND(T) | Zwraca mikrosekundę z podanego czasu |