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 |
