Wspólne funkcje A-C D-G H-L M-Q R-Z Funkcje trygonometryczne
SQL-99 Scalar abs ( wyrażenie_numeryczne ) Zwraca wartość bezwzględną z "wyrażenie_numeryczne". Wartości ujemne zwracane są jako wartości dodatnie. Przykład: abs ( 15 ) Wynik: 15 Przykład: abs ( -15 ) Wynik: 15 bit_length bit_length ( wyrażenie_łańcuchowe ) Zwraca liczbę bitów w łańcuchu "wyrażenie_łańcuchowe". cast ( wyrażenie ; specyfikacja_typu_danych ) Konwertuje "wyrażenie" na określony typ danych. Niektóre typy danych zezwalają na określenie długości i precyzji. Upewnij się, że wartość docelowa jest odpowiedniego typu i rozmiaru. Dla argumentu "specyfikacja_typu_danych" można stosować następujące typy danych: character, varchar, char, numeric, decimal, integer, bigint, smallint, real, float, date, time, timestamp, time with time zone, timestamp with time zone oraz interval. Podczas konwersji typu na typ interval należy określić jeden z następujących kwalifikatorów przedziału: year, month lub year to month dla typu danych przedziału rok-miesiąc; day, hour, minute, second, day to hour, day to minute, day to second, hour to minute, hour to second lub minute to second dla typu danych przedziału dzień-sekunda. Uwagi: Gdy konwertujesz wartość typu timestamp na typ date, część wartości znacznika czasu określająca czas jest pomijana. W przypadku konwersji wartości typu timestamp na typ time część wartości znacznika czasu określająca datę jest pomijana. W przypadku konwersji wartości typu date na typ timestamp elementy czasu znacznika czasu ustawiane są na zero. W przypadku konwersji wartości typu time na typ timestamp element daty ustawiany jest na bieżącą datę systemową. Konwersja typu danych Przedział na inny typ danych (np. z powodu zmiennej liczby dni w miesiącu) niedozwolona. Należy pamiętać, że możliwe jest określenie liczby cyfr wyłącznie dla kwalifikatora wiodącego, tj. YEAR(4) TO MONTH, DAY(5). Błędy zostaną zgłoszone, jeśli typ i rozmiar wartości docelowej nie będą zgodne z typem i rozmiarem wartości źródłowej. Przykład: cast ( '123' ; integer ) Wynik: 123 Przykład: cast ( 12345 ; varchar ( 10 ) ) Wynik: łańcuch zawierający 12345 char_length ( wyrażenie_łańcuchowe  ) Zwraca liczbę znaków logicznych w parametrze "wyrażenie_łańcuchowe". Liczba znaków logicznych może się różnić od liczby bajtów w niektórych ustawieniach narodowych dla Azji Wschodniej. Przykład: char_length ( 'Kanada' ) Wynik: 6 character_length ( wyrażenie_łańcuchowe ) Zwraca liczbę znaków w łańcuchu "wyrażenie_łańcuchowe". Przykład: character_length ( 'Kanada' ) Wynik: 6 current_date current_date Zwraca wartość daty reprezentującą bieżącą datę komputera, na którym działa oprogramowanie bazy danych. Przykład: current_date Wynik: 2003-03-04 current_time current_time Zwraca czas z wartością strefy czasowej reprezentującą bieżący czas komputera, na którym działa oprogramowanie bazy danych, o ile baza danych obsługuje tę funkcję. W przeciwnym razie reprezentuje bieżący czas komputera, na którym działa oprogramowanie IBM® Cognos® BI. Przykład: current_time Wynik: 16:33:11.354+05:00 current_timestamp current_timestamp Zwraca datę/godzinę z wartością strefy czasowej reprezentującą bieżący czas komputera, na którym działa oprogramowanie bazy danych, o ile baza danych obsługuje tę funkcję. W przeciwnym razie reprezentuje bieżący czas komputera, na którym działa oprogramowanie IBM® Cognos® BI. Przykład: current_timestamp Wynik: 2003-03-03 16:40:15.535+05:00 localtime localtime Zwraca wartość czasu reprezentującą bieżący czas komputera, na którym działa oprogramowanie bazy danych. Przykład: localtime Wynik: 16:33:11 localtimestamp localtimestamp Zwraca wartość godziny/daty reprezentującą bieżący znacznik czasu komputera, na którym działa oprogramowanie bazy danych. Przykład: localtimestamp Wynik: 2003-03-03 16:40:15 extract ( składnik_daty ; wyrażenie_data_czas ) Zwraca liczbę całkowitą reprezentującą wartość składnika daty (year, month, day, hour, minute, second, epoch) w argumencie "wyrażenie_data_czas". Przykład: extract ( year ; 2003-03-03 16:40:15.535 ) Wynik: 2003 Przykład: extract ( hour ; 2003-03-03 16:40:15,535 ) Wynik: 16 Przykład: extract ( epoch ; 2014-11-23 ) Wynik: 1416718800 lower ( wyrażenie_łańcuchowe ) Zwraca "wyrażenie_łańcuchowe", w którym wszystkie znaki zapisane wielkimi literami zostały zmienione na małe litery. Przykład: lower ( 'ABCDEF' ) Wynik: abcdef mod ( wyrażenie_liczba_całk1; wyrażenie_liczba_całk2 ) Zwraca resztę (modulo) z wartości "wyrażenie_liczba_całk1" podzielonej przez "wyrażenie_liczba_całk2". "Wyrażenie_liczba_całk2" nie może być zerem, w przeciwnym razie powstanie wyjątek. Przykład: mod ( 20 ; 3 ) Wynik: 2 occurrences_regex ( wyrażenie_regularne ; wyrażenie_łańcuchowe[ ; wyrażenie_liczba_całk [ ; wyrażenie_flagi ]] ) Zwraca wartość liczby całkowitej reprezentującą liczbę wystąpień wyrażenia regularnego "wyrażenie_regularne" w argumencie "wyrażenie_łańcuchowe". Wyszukiwanie rozpoczyna się od pozycji "wyrażenie_liczba_całk" z wartością domyślną 1. Flagi dla opcji ustawień umożliwiające interpretację wyrażenia regularnego są określane przez argument "wyrażenie_flagi". Do definiowania flag używane są pojedyncze litery, których poprawne wartości to 's', 'm', 'i' i 'x'. Przykład: occurrences_regex ( '.er' , 'latarnia') Wynik: 2 octet_length ( wyrażenie_łańcuchowe ) Zwraca liczbę bajtów w łańcuchu "wyrażenie_łańcuchowe". Przykład: octet_length ( 'ABCDEF' ) Wynik: 6 Przykład: octet_length ( '' ) Wynik: 0 position ( wyrażenie_łańcuchowe1 ; wyrażenie_łańcuchowe2 ) Zwraca liczbę całkowitą reprezentującą początkową pozycję łańcucha "wyrażenie_łańcuchowe1" w łańcuchu "wyrażenie_łańcuchowe2" lub 0, jeśli "wyrażenie_łańcuchowe1" nie zostanie znalezione. Przykład: position ( 'C' ; 'ABCDEF' ) Wynik: 3 Przykład: position ( 'H' ; 'ABCDEF' ) Wynik: 0 position_regex ([ start|po ]  wyrażenie_regularne ; wyrażenie_łańcuchowe [ ; wyrażenie_liczba_całk1 [ ; wyrażenie_liczba_całk2 [ ; wyrażenie_flagi ]]] ) Zwraca wartość liczby całkowitej reprezentującą pozycję początkową lub końcową podłańcucha w argumencie "wyrażenie_łańcuchowe", który jest zgodny z wyrażeniem regularnym "wyrażenie_regularne". Wyszukiwanie rozpoczyna się od pozycji "wyrażenie_liczba_całk1" z wartością domyślną 1. Wystąpienie wzorca do wyszukiwania jest określone przez argument "wyrażenie_liczba_całk2" z wartością domyślną 1. Opcja zwracanych wartości określona przez pierwszy argument wskazuje, co zostanie zwrócone w zależności od wystąpienia. Jeśli określona zostanie wartość "start", zwrócona zostanie pozycja pierwszego znaku dla wystąpienia. Jeśli określona zostanie wartość "po", zwrócona zostanie pozycja znaku po wystąpieniu. Jeśli opcja zwracanych wartości nie zostanie określona, argument "start" jest niejawny. Flagi dla opcji ustawień umożliwiające interpretację wyrażenia regularnego są określane przez argument "wyrażenie_flagi". Do definiowania flag używane są pojedyncze litery, których poprawne wartości to 's', 'm', 'i' i 'x'. Przykład: position_regex ( '.er' , 'latarnia') Wynik: 5 Przykład: position_regex ( after '.er' , 'latarnia' ) Wynik: 8 Przykład: position_regex ( '.er' , 'latarnia' , 1 , 2 ) Wynik: 12 trim ( [ [ kończące|wiodące|oba ] [ zgodne_wyrażenie_znakowe ] ; ] wyrażenie_łańcuchowe ) Zwraca "wyrażenie_łańcuchowe" z odciętymi spacjami wiodącymi i kończącymi lub odciętym znakiem określonym w parametrze "zgodne_wyrażenie_znakowe". Argument "obydwa" jest niejawny, jeśli nie zostanie zadeklarowany pierwszy argument, spacja zaś jest niejawna, jeśli nie zostanie zadeklarowany drugi argument. Przykład: trim ( wiodące 'A' ; 'ABCDEFA' ) Wynik: ABCDEF Przykład: trim ( oba ; ' ABCDEF ' ) Wynik: ABCDEF upper ( wyrażenie_łańcuchowe ) Zwraca "wyrażenie_łańcuchowe", w którym wszystkie znaki zapisane małymi literami zostały przekonwertowane na wielkie litery. Przykład: upper ( 'abcdef' ) Wynik: ABCDEF user user Zwraca ID uprawnienia do menedżera bazy danych w czasie wykonywania. nullif nullif ( wyrażenie1; wyrażenie2 ) Zwraca null, jeśli wartość argumentu "wyrażenie1" równa się "wyrażenie2". W przeciwnym razie zwraca "wyrażenie1". coalesce ( lista_wyrażeń ) Zwraca pierwszy niezerowy argument (lub równy zeru, jeżeli wszystkie argumenty są równe zeru). Wymaga jednego lub dwóch argumentów w parametrze "lista_wyrażeń". coalesce ( [Cena jednostkowa]; [Cena jednostkowa sprzedaży] ) Wynik: Zwraca jednostkową cenę lub jednostkową cenę sprzedaży, jeśli cena jednostkowa ma wartość null. coalesce ( lista_wyrażeń ) Zwraca pierwszy niezerowy argument (lub równy zeru, jeżeli wszystkie argumenty są równe zeru). Wymaga co najmniej jednego argumentu w parametrze "lista_wyrażeń". coalesce ( [Cena jednostkowa]; [Cena jednostkowa sprzedaży] ) Wynik: Zwraca jednostkową cenę lub jednostkową cenę sprzedaży, jeśli cena jednostkowa ma wartość null. ceil ( wyrażenie_numeryczne ) Zwraca najmniejszą liczbę całkowitą większą lub równą "wyrażenie_numeryczne". ceiling ( wyrażenie_numeryczne ) Zwraca najmniejszą liczbę całkowitą większą lub równą "wyrażenie_numeryczne". Przykład: ceiling ( 4,22 ) Wynik: 5 Przykład: ceiling ( -1,23 ) Wynik: -1 ln ( wyrażenie_numeryczne ) Zwraca logarytm naturalny z argumentu "wyrażenie_numeryczne". Przykład: ln ( 4 ) Wynik: 1.38629 exp ( wyrażenie_numeryczne ) Zwraca 'e' podniesione do potęgi "wyrażenie_numeryczne". Stała 'e' jest podstawą logarytmu naturalnego. Przykład: exp ( 2 ) Wynik: 7,389056 period ( wyrażenie_data_czas1 ; wyrażenie_data_czas2 ) Tworzy wartość okresu z punktem początkowym "wyrażenie_data_czas1" i punktem końcowym "wyrażenie_data_czas2". Typy danych punktów początkowych i końcowych muszą być identyczne i mogą to być data, godzina lub data-godzina. Wartości okresu mogą być stosowane w predykatach okresu. Przykład: period ( 2003-03-03 ; 2003-10-03 ) Przykład: period ( 12:00:00 ; 23:59:59 ) Przykład: period ( 2003-03-03 12:00:00 ; 2003-10-03 23:59:59 ) Przykład: period ( [EMP].[BUS_START] ; [EMP].[BUS_END] ) power ( wyrażenie_numeryczne1 ; wyrażenie_numeryczne2 ) Zwraca "wyrażenie_numeryczne1" podniesione do potęgi "wyrażenie_numeryczne2". Jeśli "wyrażenie_numeryczne1" ma wartość ujemną, wówczas "wyrażenie_numeryczne2" musi być liczbą całkowitą. Przykład: power ( 3 ; 2 ) Wynik: 9 random ( [ wyrażenie_liczba_całk ] ) Zwraca losową liczbę zmiennoprzecinkową z przedziału od 0 do 1, używając opcjonalnej liczby "wyrażenie_liczba_całk" jako wartości początkowej. _round ( wyrażenie_numeryczne ; wyrażenie_liczba_całk ) Zwraca "wyrażenie_numeryczne" zaokrąglone do "wyrażenie_liczba_całk" miejsc z prawej strony separatora dziesiętnego. Uwaga: "wyrażenie_liczba_całk" musi być nieujemną liczbą całkowitą. Zaokrąglanie wykonywane jest przed formatowaniem danych. Przykład: _round ( 1220,42369; 2 ) Wynik: 1220,42 Konstruktor row odzwierciedla zbiór wartości zorganizowanych w wiersz danych. Może być używany z wyrażeniami warunkowymi (tj. IF-THEN-ELSE) i wyrażeniami filtrów (tj. klauzulą IN). row ( lista_wyrażeń ) Przykład: if ( row([NazwaSprzedawcy];[KodMetodyZamawiania]) = row('ActiForme';4) ) then ('A') else ('B') Wynik: Zwraca 'A', jeśli Nazwa sprzedawcy to 'ActiForme', a kod metody zamawiania to 4. W przeciwnym razie zwraca 'B'. Przykład: case row([NazwaSprzedawcy];[KodMetodyZamawiania]) when row('Advanced Climbing Ltd';3) then 1 when row('ActiForme';5) then 2 else 3 end Wynik: Zwraca 1, jeśli Nazwa sprzedawcy to 'Advanced Climbing Ltd', a kod metody zamawiania to 3. Zwraca 2, jeśli Nazwa sprzedawcy to 'ActiForme', a kod metody zamawiania to 5. W przeciwnym razie zwraca 3. Przykład: row ( [KodMetodyZamawiania]; [Rok] ) in ( [Query].[OMC]; [Query].[YR] ) Wynik: Zwracane dane są filtrowane wg następujących dwóch warunków: 1) [KodMetodyZamawiania] in ([Query].[OMC]) 2) [Rok] in ([Query].[YR]) sqrt ( wyrażenie_numeryczne ) Zwraca pierwiastek kwadratowy z "wyrażenie_numeryczne". "Wyrażenie_numeryczne" musi być liczbą nieujemną. Przykład: sqrt ( 9 ) Wynik: 3 substring ( wyrażenie_łańcuchowe ; wyrażenie_liczba_całk1 ; wyrażenie_liczba_całk2 ] ) Zwraca podłańcuch łańcucha "wyrażenie_łańcuchowe" rozpoczynający się od pozycji "wyrażenie_liczba_całk1" o długości "wyrażenie_liczba_całk2" znaków lub do końca łańcucha "wyrażenie_łańcuchowe" w przypadku pominięcia argumentu "wyrażenie_liczba_całk2". Pierwszy znak w łańcuchu "wyrażenie_łańcuchowe" znajduje się na pozycji 1. Przykład: substring ( 'abcdefg' ; 3 ; 2 ) Wynik: cd substring_regex ( wyrażenie_regularne ; wyrażenie_łańcuchowe [ ; wyrażenie_liczba_całk1 [ ; wyrażenie_liczba_całk2 [ ; wyrażenie_flagi ]]] ) Zwraca podłańcuch pozycji "wyrażenie_łańcuchowe", który jest zgodny z wyrażeniem regularnym "wyrażenie_regularne". Wyszukiwanie rozpoczyna się od pozycji "integer_expression1" z wartością domyślną 1. Wystąpienie wzorca do wyszukania jest określone przez argument "wyrażenie_liczba_całk2" z wartością domyślną 1. Flagi dla opcji ustawień umożliwiające interpretację wyrażenia regularnego są określane przez argument "wyrażenie_flagi". Do definiowania flag używane są pojedyncze litery, których poprawne wartości to 's', 'm', 'i' i 'x'. Przykład: substring_regex ( '.er' , 'latarnia') Wynik: ker Przykład: substring_regex ( '.er' , 'latarnia' , 1 , 2 ) Wynik: ter floor ( wyrażenie_numeryczne ) Zwraca największą liczbę całkowitą mniejszą lub równą "wyrażenie_numeryczne". Przykład: floor ( 3,22 ) Wynik: 3 Przykład: floor ( -1,23 ) Wynik: -2 width-bucket ( wyrażenie_numeryczne;  wartość_min ;  wartość_maks ;  liczba_porcji  ) Dla danego wyrażenia ta funkcja zwraca liczbę porcji, do której wartość tego wyrażenia będzie przypadać po obliczeniu. Przykład: width-bucket ( Ilość ;  100 ;  5000 ;  10 ) Wynik: dla każdego wiersza zwraca liczbę porcji (od 0 do 11) dla bieżącej wartości Ilość. Quantity width-bucket (Quantity) ------------ ------------------------------------- 50 0 450 1 1400 3 3600 8 4900 10 5000 11 sin ( wyrażenie_numeryczne ) Ta funkcja trygonometryczna zwraca sinus z argumentu, gdzie argument jest kątem wyrażonym w radianach. Przykład: sin ( 0,1667 * 3,1415 ) Wynik: 0,5 cos ( wyrażenie_numeryczne ) Ta funkcja trygonometryczna zwraca cosinus z argumentu, gdzie argument jest kątem wyrażonym w radianach. Przykład: cos ( 0,3333 * 3,1415 ) Wynik: 0,5 tan ( wyrażenie_numeryczne ) Ta funkcja trygonometryczna zwraca tangens z argumentu, gdzie argument jest kątem wyrażonym w radianach. Przykład: tan ( 0,25 * 3,1415 ) Wynik: 1 arccos ( wyrażenie_numeryczne ) Ta odwrotna funkcja trygonometryczna zwraca arc cosinus z argumentu, gdzie argument należy do zakresu od -1 do 1, zaś wynik jest wartością wyrażoną w radianach. Przykład: arccos ( -1 ) Wynik: 3,1415 arcsin ( wyrażenie_numeryczne ) Ta odwrotna funkcja trygonometryczna zwraca arc sinus z argumentu, gdzie argument należy do zakresu od -1 do 1, zaś wynik jest wartością wyrażoną w radianach. Przykład: arcsin ( 0 ) Wynik: 3,1415 Ta odwrotna funkcja trygonometryczna zwraca arc tangens z argumentu, gdzie argument należy do zakresu od -1 do 1, zaś wynik jest wartością wyrażoną w radianach. arctan ( wyrażenie_numeryczne ) Przykład: arctan ( 0 ) Wynik: 3,1415 coshyp ( wyrażenie_numeryczne ) Ta funkcja trygonometryczna zwraca hiperboliczny cosinus z argumentu, gdzie argument jest kątem wyrażonym w radianach. Przykład: coshyp ( 0 ) Wynik: 1 sinhyp ( wyrażenie_numeryczne ) Ta funkcja trygonometryczna zwraca hiperboliczny sinus z argumentu, gdzie argument jest kątem wyrażonym w radianach. Przykład: sinhyp ( 0 ) Wynik: 0 tanhyp ( wyrażenie_numeryczne ) Ta funkcja trygonometryczna zwraca hiperboliczny tangens z argumentu, gdzie argument jest kątem wyrażonym w radianach. Przykład: tanhyp ( 0 ) Wynik: 0
Rozszerzenia SQL-99 OLAP cube cube ( lista_odniesień_do_kolumn_grupowania ) Jest to klauzula "group by", która zwraca listę zestawów grupowania zawierającą zestaw grupowania dla wszystkich możliwych kombinacji kolumn grupowania w parametrze "lista_odniesień_do_kolumn_grupowania". rollup rollup ( lista_odniesień_do_kolumn_grupowania ) Jest to klauzula "group by", która zwraca listę zestawów grupowania zawierającą zestaw grupowania dla każdej prawidłowej podlisty parametru "lista_odniesień_do_kolumn_grupowania" poprzez usuwanie poszczególnych elementów umieszczonych po prawej stronie. grouping sets grouping sets ( lista_zestawów_grupowania ) Jest to klauzula "group by" określająca wiele zestawów, według których ma być przeprowadzone grupowanie. rank rank () Oblicza pozycję wiersza w partycji okna, przy czym pozycja wiersza x definiowana jest jako 1 plus liczba wierszy poprzedzających x, ale bez samego x. dense_rank dense_rank () Oblicza zagęszczoną pozycję wiersza w partycji okna, przy czym zagęszczona pozycja wiersza x definiowana jest jako liczba wierszy poprzedzających x, włącznie z x. percent_rank percent_rank () Oblicza procentową pozycję wiersza w partycji okna, przy czym procentowa pozycja wiersza x definiowana jest jako (xy - 1) / (ab - 1), przy czym xy to pozycja x, ab zaś to liczba wierszy w partycji okna. row_number row_number () Oblicza sekwencyjny numer wiersza w partycji okna, począwszy od 1 dla pierwszego wiersza. ntile ntile ( wyrażenie_numeryczne ) Dzieli uporządkowany zestaw danych na liczbę porcji wskazaną przez "wyrażenie_numeryczne" i przypisuje odpowiednią liczbę porcji do każdego wiersza.