LPAD()
LPAD(string, dlugosc, string1)
Funkcja stosowana głównie do formatowania wyświetlanych wyników.
string - string do przetworzenia,
dlugosc - liczba znaków, które zwracamy. Jeżeli "dlugosc" jest mniejsza, niż długość "string", to "string" będzie obcięty do liczby znaków "dlugosc".
string1 - string którym zastąpimy znaki z lewej strony, w przypadku, gdy nasz string jest krótszy niż "dlugosc". Parametr ten jest opcjonalny. Jeżeli nie zostanie podany, zostaną wstawione spacje.
Działanie funkcji najlepiej zobrazują poniższe przykłady:
Przykład 1:
Wyświetlamy tylko dwa pierwsze znaki z tekstu, stąd wynikiem będzie "12".
SELECT lpad ( '1234', 2,) FROM DUAL;
LPAD('1234',2,'0')
------------------
12
Przykład 2:
Tekst "1234" zajmuje tylko 4 pola. Chcemy wyświetlić ten tekst w 5 polach, zatem jedno pole z lewej strony zostanie puste. W naszym przypadku puste pole zastępujemy znakiem "x", więc otrzymanym wynikiem jest "x1234".
SELECT lpad ( '1234', 5, 'x') FROM DUAL;
LPAD('1234',5,'X')
------------------
x1234
Bazy danych
Witryna zawiera podstawowe informacje odnośnie funkcji w bazach danych takich jak MySQL i Oracle oraz podstawowe informacje dotyczące zapytań.
wtorek, 21 lutego 2012
ORACLE - LOWER()
LOWER()
LOWER(string)
Zwraca "string", pisany wyłącznie małymi literami.
Przykład 1:
SELECT LOWER('DUZE LITERY') FROM DUAL;
LOWER('DUZELITERY')
-------------------
duze litery
Przykład 2:
SELECT LOWER('JaKiS tEkSt') FROM DUAL;
LOWER('JAKISTEKST')
-------------------
jakis tekst
LOWER(string)
Zwraca "string", pisany wyłącznie małymi literami.
Przykład 1:
SELECT LOWER('DUZE LITERY') FROM DUAL;
LOWER('DUZELITERY')
-------------------
duze litery
Przykład 2:
SELECT LOWER('JaKiS tEkSt') FROM DUAL;
LOWER('JAKISTEKST')
-------------------
jakis tekst
ORACLE - INITCAP()
INITCAP()
INITCAP(string)
Zwraca podany przez nas "string", w którym pierwsza litera W KAŻDYM SŁOWIE jest piasana dużą literą, zaś pozostałe małymi literami.
Przykład 1:
SELECT INITCAP('mala litera') FROM DUAL;
INITCAP('MALALITERA')
---------------------
Mala Litera
Przykład 2:
SELECT INITCAP('Mala Litera') FROM DUAL;
INITCAP('MALALITERA')
---------------------
Mala Litera
INITCAP(string)
Zwraca podany przez nas "string", w którym pierwsza litera W KAŻDYM SŁOWIE jest piasana dużą literą, zaś pozostałe małymi literami.
Przykład 1:
SELECT INITCAP('mala litera') FROM DUAL;
INITCAP('MALALITERA')
---------------------
Mala Litera
Przykład 2:
SELECT INITCAP('Mala Litera') FROM DUAL;
INITCAP('MALALITERA')
---------------------
Mala Litera
ORACLE - CONCAT()
CONCAT()
CONCAT(string, string1)
Funkcja łączy dwa stringi w całości.
Przykład 1:
SELECT CONCAT('Ala', ' ma kota') FROM DUAL;
CONCAT('ALA','MAKOTA')
----------------------
Ala ma kota
CONCAT(string, string1)
Funkcja łączy dwa stringi w całości.
Przykład 1:
SELECT CONCAT('Ala', ' ma kota') FROM DUAL;
CONCAT('ALA','MAKOTA')
----------------------
Ala ma kota
ORACLE - CHR()
CHR()
CHR(wartosc)
Funkcja zwraca znak przypisany do danej wartości w kodzie ASCII. (patrz UWAGA)
UWAGA!!!
Jeżeli maszyna używa kodowania EBCDIC zostanie zwrócony znak dla tego właśnie kodowania.
Przykład 1:
Używamy funkcji CHR() dla komputera korzystającego z ASCII.
SELECT CHR(97) FROM DUAL;
CHR(97)
-------
a
Jeżeli użyjemy wartości większej niż 256, wynik zostanie zwrócony używając reszty z dzielenia podanej przez nas wartości przez 256.
SELECT CHR(97+256) FROM DUAL;
CHR(97+256)
-----------
a
CHR(wartosc)
Funkcja zwraca znak przypisany do danej wartości w kodzie ASCII. (patrz UWAGA)
UWAGA!!!
Jeżeli maszyna używa kodowania EBCDIC zostanie zwrócony znak dla tego właśnie kodowania.
Przykład 1:
Używamy funkcji CHR() dla komputera korzystającego z ASCII.
SELECT CHR(97) FROM DUAL;
CHR(97)
-------
a
Jeżeli użyjemy wartości większej niż 256, wynik zostanie zwrócony używając reszty z dzielenia podanej przez nas wartości przez 256.
SELECT CHR(97+256) FROM DUAL;
CHR(97+256)
-----------
a
ORACLE - WIDTH_BUCKET()
WIDTH_BUCKET()
WIDTH_BUCKET(wartosc1, wartosc2, wartosc3, wartosc4)
Dzieli zbiór na określoną przez nas liczbę podzbiorów.
wartosc1 - określa zbiór, na którym będziemy tworzyli nasze przedziały (np. tabela)
wartosc2 - dolny zakres przedziału.
wartosc3 - górny zakres przedziału.
wartosc4 - liczba przedziałów, na które dzielimy dany przedział
UWAGA!!!
Jako "wartosc1" mogą być brane pod uwagę wartości numeryczne, albo daty.
Liczba przedziałów, na które dzielimy równa się "LICZBA PRZEDZIAŁÓW + 1"!
Poniższy przykład bardzo dobrze zobrazuje działanie funkcji:
Tworzymy tabelę MOJATABELA z jedną kolumną "i" (NUMBER - przechowujemy liczby).
CREATE TABLE MOJATABELA (
i NUMBER
);
Dodajemy rekordy do tabeli:
INSERT INTO MOJATABELA VALUES(10);
INSERT INTO MOJATABELA VALUES(20);
INSERT INTO MOJATABELA VALUES(30);
INSERT INTO MOJATABELA VALUES(40);
INSERT INTO MOJATABELA VALUES(50);
CREATE TABLE succeeded.
1 rows inserted
1 rows inserted
1 rows inserted
1 rows inserted
1 rows inserted
Wyświetlamy zawartość tabeli MOJATABELA;
SELECT * FROM MOJATABELA;
I
----------------------
10
20
30
40
50
5 rows selected
Przykład 1:
SELECT i, WIDTH_BUCKET(i, 10, 50, 4) FROM MOJATABELA;
I WIDTH_BUCKET(I,10,50,4)
---------------------- -----------------------
10 1
20 2
30 3
40 4
50 5
5 rows selected
Liczby 10,20,30,40,50 są dzielone na 5 przedziały (4+1).
Przedział zerowy (..., 10)
Pierwszy przedział <10,20)
Drugi przedział <20, 30)
Trzeci przedział <30, 40)
Czwarty przedział <40, 50)
Piąty przedział <50, ...)
WIDTH_BUCKET(wartosc1, wartosc2, wartosc3, wartosc4)
Dzieli zbiór na określoną przez nas liczbę podzbiorów.
wartosc1 - określa zbiór, na którym będziemy tworzyli nasze przedziały (np. tabela)
wartosc2 - dolny zakres przedziału.
wartosc3 - górny zakres przedziału.
wartosc4 - liczba przedziałów, na które dzielimy dany przedział
UWAGA!!!
Jako "wartosc1" mogą być brane pod uwagę wartości numeryczne, albo daty.
Liczba przedziałów, na które dzielimy równa się "LICZBA PRZEDZIAŁÓW + 1"!
Poniższy przykład bardzo dobrze zobrazuje działanie funkcji:
Tworzymy tabelę MOJATABELA z jedną kolumną "i" (NUMBER - przechowujemy liczby).
CREATE TABLE MOJATABELA (
i NUMBER
);
Dodajemy rekordy do tabeli:
INSERT INTO MOJATABELA VALUES(10);
INSERT INTO MOJATABELA VALUES(20);
INSERT INTO MOJATABELA VALUES(30);
INSERT INTO MOJATABELA VALUES(40);
INSERT INTO MOJATABELA VALUES(50);
CREATE TABLE succeeded.
1 rows inserted
1 rows inserted
1 rows inserted
1 rows inserted
1 rows inserted
Wyświetlamy zawartość tabeli MOJATABELA;
SELECT * FROM MOJATABELA;
I
----------------------
10
20
30
40
50
5 rows selected
Przykład 1:
SELECT i, WIDTH_BUCKET(i, 10, 50, 4) FROM MOJATABELA;
I WIDTH_BUCKET(I,10,50,4)
---------------------- -----------------------
10 1
20 2
30 3
40 4
50 5
5 rows selected
Liczby 10,20,30,40,50 są dzielone na 5 przedziały (4+1).
Przedział zerowy (..., 10)
Pierwszy przedział <10,20)
Drugi przedział <20, 30)
Trzeci przedział <30, 40)
Czwarty przedział <40, 50)
Piąty przedział <50, ...)
niedziela, 19 lutego 2012
ORACLE - TRUNC()
TRUNC()
TRUNC(wartosc,wartosc1)
Zwraca liczbę "wartosc", uciętą do "wartosc1" miejsc "po przecinku".
"wartosc1" jest opcjonalne. Jeżeli nie zostanie podane domyślnie wstawiane jest 0.
Jeżeli "wartosc1", jest liczbą 0, wtedy wynikiem jest liczba zwróciona bez części dziesiętnej. (przykład 3)
UWAGA!!!
"wartosc1" może być też liczbą ujemną. (przykład 2).
Przykład 1:
SELECT TRUNC(13.12, 1 ) FROM DUAL;
TRUNC(13.12,1)
----------------------
13,1
Przykład 2:
SELECT TRUNC(13.12, -1 ) FROM DUAL;
TRUNC(13.12,-1)
----------------------
10
Przykład 3:
SELECT TRUNC(13.12, 0 ) FROM DUAL;
TRUNC(13.12,0)
----------------------
13
TRUNC(wartosc,wartosc1)
Zwraca liczbę "wartosc", uciętą do "wartosc1" miejsc "po przecinku".
"wartosc1" jest opcjonalne. Jeżeli nie zostanie podane domyślnie wstawiane jest 0.
Jeżeli "wartosc1", jest liczbą 0, wtedy wynikiem jest liczba zwróciona bez części dziesiętnej. (przykład 3)
UWAGA!!!
"wartosc1" może być też liczbą ujemną. (przykład 2).
Przykład 1:
SELECT TRUNC(13.12, 1 ) FROM DUAL;
TRUNC(13.12,1)
----------------------
13,1
Przykład 2:
SELECT TRUNC(13.12, -1 ) FROM DUAL;
TRUNC(13.12,-1)
----------------------
10
Przykład 3:
SELECT TRUNC(13.12, 0 ) FROM DUAL;
TRUNC(13.12,0)
----------------------
13
ORACLE - TANH()
TANH()
TANH(wartosc)
Zwraca tangens hiperboliczny dla wartości "wartosc".
Przykład 1:
SELECT TANH(0) FROM DUAL;
TANH(0)
----------------------
0
1 rows selected
TANH(wartosc)
Zwraca tangens hiperboliczny dla wartości "wartosc".
Przykład 1:
SELECT TANH(0) FROM DUAL;
TANH(0)
----------------------
0
1 rows selected
ORACLE - TAN()
TAN()
TAN(wartosc)
Zwraca tangens z liczby "wartosc".
Przykład 1:
SELECT TAN(0) FROM DUAL;
TAN(0)
----------------------
0
TAN(wartosc)
Zwraca tangens z liczby "wartosc".
Przykład 1:
SELECT TAN(0) FROM DUAL;
TAN(0)
----------------------
0
ORACLE - SQRT()
SQRT()
SQRT(wartosc)
Zwraca pierwiastek kwadratowy z liczby "wartosc".
Dla "wartosc = 0" rezultatem jest 0.
Dla "wartosc < 0" rezultatem jest NaN (NOT A NUMBER)
Przykład 1:
SELECT SQRT(4) FROM DUAL;
SQRT(4)
----------------------
2
Przykład 2:
SELECT SQRT(16) FROM DUAL;
SQRT(16)
----------------------
4
SQRT(wartosc)
Zwraca pierwiastek kwadratowy z liczby "wartosc".
Dla "wartosc = 0" rezultatem jest 0.
Dla "wartosc < 0" rezultatem jest NaN (NOT A NUMBER)
Przykład 1:
SELECT SQRT(4) FROM DUAL;
SQRT(4)
----------------------
2
Przykład 2:
SELECT SQRT(16) FROM DUAL;
SQRT(16)
----------------------
4
ORACLE - SINH()
SINH()
SINH(wartosc)
Zwraca sinus hiperboliczny dla wartości "wartosc".
Przykład 1:
SELECT SINH(0) "sinus hiperboliczny" FROM DUAL;
sinus hiperboliczny
----------------------
0
SINH(wartosc)
Zwraca sinus hiperboliczny dla wartości "wartosc".
Przykład 1:
SELECT SINH(0) "sinus hiperboliczny" FROM DUAL;
sinus hiperboliczny
----------------------
0
ORACLE - SIN()
SIN()
SIN(wartosc)
Funkcja zwraca Sinus dla podanej wartosci.
Przykład 1:
SELECT SIN(0) FROM DUAL;
SIN(0)
----------------------
0
Przykład 2:
Sinus 90 stopni wynosi. (wynik wynika z dokładności liczby PI)
SELECT SIN(90 * 3.14159265359/180) FROM DUAL;
SIN(90*3.14159265359/180)
-------------------------
0,9999999999999999999999999946562083337476
SIN(wartosc)
Funkcja zwraca Sinus dla podanej wartosci.
Przykład 1:
SELECT SIN(0) FROM DUAL;
SIN(0)
----------------------
0
Przykład 2:
Sinus 90 stopni wynosi. (wynik wynika z dokładności liczby PI)
SELECT SIN(90 * 3.14159265359/180) FROM DUAL;
SIN(90*3.14159265359/180)
-------------------------
0,9999999999999999999999999946562083337476
ORACLE - SIGN()
SIGN()
SIGN(wartosc)
Zwraca signum liczby.
Signum liczby oznacza znak liczby.
Dla liczb większych od zera wynikiem jest 1.
Dla liczby równej zero wynikiem jest 0.
Dla liczb ujemnych wynikiem jest -1.
Przykład 1:
SELECT SIGN(-10) FROM DUAL;
SIGN(-10)
----------------------
-1
Przykład 2:
SELECT SIGN(5) FROM DUAL;
SIGN(5)
----------------------
1
SIGN(wartosc)
Zwraca signum liczby.
Signum liczby oznacza znak liczby.
Dla liczb większych od zera wynikiem jest 1.
Dla liczby równej zero wynikiem jest 0.
Dla liczb ujemnych wynikiem jest -1.
Przykład 1:
SELECT SIGN(-10) FROM DUAL;
SIGN(-10)
----------------------
-1
Przykład 2:
SELECT SIGN(5) FROM DUAL;
SIGN(5)
----------------------
1
piątek, 17 lutego 2012
ORACLE - ROUND()
ROUND()
ROUND(wartosc) lub ROUND(wartosc, wartosc1)
Funkcja ROUND zwraca zaokrągloną liczbę.
"wartosc1" określa do ilu miejsc po przecinku ma być zaokrąglona liczba (gdy "wartosc1" jest dodatnia).
Jeżeli argument "wartosc1" nie jest określony, domyslnie przypisywane jest 0, czyli zaokrąglenie do części całkowitych.
Przykład 1:
SELECT ROUND(1.5) FROM DUAL;
ROUND(1.5)
----------------------
2
SELECT ROUND(1.5, 0) FROM DUAL;
ROUND(1.5,0)
----------------------
2
Przykład 2:
SELECT ROUND(1.1234, 2) FROM DUAL;
ROUND(1.1234,2)
----------------------
1,12
Przykład 3:
SELECT ROUND(1.1264, 2) FROM DUAL;
ROUND(1.1264,2)
----------------------
1,13
Dla "wartosc1" mniejszej od zera zaokrąglamy liczbę od miejsc położonych na lewo od części dziesiętnych.
Przykład 4:
SELECT ROUND(12.1264, -1) FROM DUAL;
ROUND(12.1264,-1)
----------------------
10
Przykład 5:
SELECT ROUND(12.1264, -2) FROM DUAL;
ROUND(12.1264,-2)
----------------------
0
ROUND(wartosc) lub ROUND(wartosc, wartosc1)
Funkcja ROUND zwraca zaokrągloną liczbę.
"wartosc1" określa do ilu miejsc po przecinku ma być zaokrąglona liczba (gdy "wartosc1" jest dodatnia).
Jeżeli argument "wartosc1" nie jest określony, domyslnie przypisywane jest 0, czyli zaokrąglenie do części całkowitych.
Przykład 1:
SELECT ROUND(1.5) FROM DUAL;
ROUND(1.5)
----------------------
2
SELECT ROUND(1.5, 0) FROM DUAL;
ROUND(1.5,0)
----------------------
2
Przykład 2:
SELECT ROUND(1.1234, 2) FROM DUAL;
ROUND(1.1234,2)
----------------------
1,12
Przykład 3:
SELECT ROUND(1.1264, 2) FROM DUAL;
ROUND(1.1264,2)
----------------------
1,13
Dla "wartosc1" mniejszej od zera zaokrąglamy liczbę od miejsc położonych na lewo od części dziesiętnych.
Przykład 4:
SELECT ROUND(12.1264, -1) FROM DUAL;
ROUND(12.1264,-1)
----------------------
10
Przykład 5:
SELECT ROUND(12.1264, -2) FROM DUAL;
ROUND(12.1264,-2)
----------------------
0
ORACLE - REMAINDER()
REMAINDER()
REMAINDER(wartosc_dzielona,dzielnik)
Zwraca resztę z dzielenie "wartosc_dzielona" przez "dzielnik".
Różnica przy użyciu REMAINDER, zamiast funkcji MOD jest taka, iż REMAINDER korzysta z ROUND(), zaś MOD() z FLOOR() przy ustalaniu wyniku.
(W celu prześledzenia działania funkcji MOD(), ROUND(), FLOOR() zapraszam do przeczytania artykułów opisujących funkcje)
Najlepszym przykładem różnicy działania funkcji będzie opisanie krok po kroku.
SELECT 2/3 FROM dual;
2/3
----------------------
0,6666666666666666666666666666666666666667
Dzielenie liczby 2 przez liczbę 3 daje wynik 0.666
Dla FLOOR(0.666) wynikiem będzie 0.
Dla ROUND(0.666) wynikiem będzie 1.
Jako, że funkcja MOD() korzysta z FLOOR (wynik 0), będziemy mieli 0 i 2 reszty.
Funkcja REMAINDER() korzsyta z ROUND (wynik 1), będziemy mieli 1 i -1 reszty.
1x3 = 3
3+(-1) = 2
SELECT REMAINDER(2,3) FROM dual;
REMAINDER(2,3)
----------------------
-1
SELECT MOD(2,3) FROM dual;
MOD(2,3)
----------------------
2
REMAINDER(wartosc_dzielona,dzielnik)
Zwraca resztę z dzielenie "wartosc_dzielona" przez "dzielnik".
Różnica przy użyciu REMAINDER, zamiast funkcji MOD jest taka, iż REMAINDER korzysta z ROUND(), zaś MOD() z FLOOR() przy ustalaniu wyniku.
(W celu prześledzenia działania funkcji MOD(), ROUND(), FLOOR() zapraszam do przeczytania artykułów opisujących funkcje)
Najlepszym przykładem różnicy działania funkcji będzie opisanie krok po kroku.
SELECT 2/3 FROM dual;
2/3
----------------------
0,6666666666666666666666666666666666666667
Dzielenie liczby 2 przez liczbę 3 daje wynik 0.666
Dla FLOOR(0.666) wynikiem będzie 0.
Dla ROUND(0.666) wynikiem będzie 1.
Jako, że funkcja MOD() korzysta z FLOOR (wynik 0), będziemy mieli 0 i 2 reszty.
Funkcja REMAINDER() korzsyta z ROUND (wynik 1), będziemy mieli 1 i -1 reszty.
1x3 = 3
3+(-1) = 2
SELECT REMAINDER(2,3) FROM dual;
REMAINDER(2,3)
----------------------
-1
SELECT MOD(2,3) FROM dual;
MOD(2,3)
----------------------
2
ORACLE - POWER()
POWER()
POWER(wartosc1, wartosc2)
Funkcja zwraca liczbę "wartosc1" podniesioną do potęgi "wartosc2".
UWAGA!!!
Jeżeli "wartosc1" jest liczbą ujemną, "wartosc2" musi być liczbą całkowita.
SELECT POWER(-2,3.1) FROM DUAL;
SELECT POWER(-2,3.1) FROM DUAL
Error report:
SQL Error: ORA-01428: argument '-2' is out of range
01428. 00000 - "argument '%s' is out of range"
*Cause:
*Action:
Przykład 1:
SELECT POWER(-2,3) FROM DUAL;
POWER(-2,3)
----------------------
-8
1 rows selected
Przykład 2:
SELECT POWER(2,2) FROM DUAL;
POWER(2,2)
----------------------
4
1 rows selected
POWER(wartosc1, wartosc2)
Funkcja zwraca liczbę "wartosc1" podniesioną do potęgi "wartosc2".
UWAGA!!!
Jeżeli "wartosc1" jest liczbą ujemną, "wartosc2" musi być liczbą całkowita.
SELECT POWER(-2,3.1) FROM DUAL;
SELECT POWER(-2,3.1) FROM DUAL
Error report:
SQL Error: ORA-01428: argument '-2' is out of range
01428. 00000 - "argument '%s' is out of range"
*Cause:
*Action:
Przykład 1:
SELECT POWER(-2,3) FROM DUAL;
POWER(-2,3)
----------------------
-8
1 rows selected
Przykład 2:
SELECT POWER(2,2) FROM DUAL;
POWER(2,2)
----------------------
4
1 rows selected
ORACLE - NANVL()
NANVL()
NANVL(wartosc_sprawdzana, wartosc_zwracana)
Zwraca "wartosc_zwracana" jeżeli "wartosc_sprawdzana" jest wartością NaN. NOT A NUMBER
Używana jest głównie do konwersji NaN na inne wartości.
Funkcja działa tylko na typach BINARY_FLOAT lub BINARY_DOUBLE.
Przykład 1:
CREATE TABLE MOJATABELA (
KOLUMNA BINARY_FLOAT
);
INSERT INTO MOJATABELA VALUES('NaN');
SELECT KOLUMNA, NANVL(KOLUMNA, 0) FROM MOJATABELA;
CREATE TABLE succeeded.
1 rows inserted
KOLUMNA NANVL(KOLUMNA,0)
------- ----------------
NaN 0.0
1 rows selected
NANVL(wartosc_sprawdzana, wartosc_zwracana)
Zwraca "wartosc_zwracana" jeżeli "wartosc_sprawdzana" jest wartością NaN. NOT A NUMBER
Używana jest głównie do konwersji NaN na inne wartości.
Funkcja działa tylko na typach BINARY_FLOAT lub BINARY_DOUBLE.
Przykład 1:
CREATE TABLE MOJATABELA (
KOLUMNA BINARY_FLOAT
);
INSERT INTO MOJATABELA VALUES('NaN');
SELECT KOLUMNA, NANVL(KOLUMNA, 0) FROM MOJATABELA;
CREATE TABLE succeeded.
1 rows inserted
KOLUMNA NANVL(KOLUMNA,0)
------- ----------------
NaN 0.0
1 rows selected
ORACLE - MOD()
MOD()
MOD(liczba, dzielenie)
Funkcja zwraca resztę z dzielenia liczby "liczba" przez "dzielenie".
Dla przykładu liczbe 7 dzielimy przez 2.
Wynikiem jest 3.5.
W liczbie 7 liczba 2 "zmieści się" 3 razy. Resztą jest liczba 1.
2x3 + 1 = 7
UWAGA!!!
Jeżeli wartość drugiego argumentu jest równa 0 zwracany jest argument pierwszy.
W funkcji MOD() musza być podane dwa argumenty, w przeciwnym wypadku zostanie zwrócony błąd:
SELECT MOD(-7) FROM DUAL
Error at Command Line:1 Column:7
Error report:
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 - "invalid number of arguments"
*Cause:
*Action:
Przykład 1:
SELECT MOD(7,2) FROM DUAL;
MOD(7,2)
----------------------
1
1 rows selected
UWAGA!!!
Funkcja MOD() dla liczby ujemnej nie zachowuje się w sposób standardowy.
SELECT MOD(-7,-3) FROM DUAL;
MOD(-7,-3)
----------------------
-1
-7 : -3 = 2 reszty -1
Standardowe podejście matematyczne zwróciłoby następujący wynik:
-7 : -3 = 3 reszty -2
MOD(liczba, dzielenie)
Funkcja zwraca resztę z dzielenia liczby "liczba" przez "dzielenie".
Dla przykładu liczbe 7 dzielimy przez 2.
Wynikiem jest 3.5.
W liczbie 7 liczba 2 "zmieści się" 3 razy. Resztą jest liczba 1.
2x3 + 1 = 7
UWAGA!!!
Jeżeli wartość drugiego argumentu jest równa 0 zwracany jest argument pierwszy.
W funkcji MOD() musza być podane dwa argumenty, w przeciwnym wypadku zostanie zwrócony błąd:
SELECT MOD(-7) FROM DUAL
Error at Command Line:1 Column:7
Error report:
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 - "invalid number of arguments"
*Cause:
*Action:
Przykład 1:
SELECT MOD(7,2) FROM DUAL;
MOD(7,2)
----------------------
1
1 rows selected
UWAGA!!!
Funkcja MOD() dla liczby ujemnej nie zachowuje się w sposób standardowy.
SELECT MOD(-7,-3) FROM DUAL;
MOD(-7,-3)
----------------------
-1
-7 : -3 = 2 reszty -1
Standardowe podejście matematyczne zwróciłoby następujący wynik:
-7 : -3 = 3 reszty -2
ORACLE - LOG()
LOG()
lub LOG(wartosc1, wartosc2)
Funkcja zwraca wartosc logarytmu przy podstawie z wartosc1 z liczby wartosc2.
UWAGA!!!
"wartosc1" musi być liczbą większą od 1.
"wartosc2" musi być liczbą dodatnią.
w przeciwnym wypadku zostanie zwrócony błąd:
SELECT log(1,8) FROM DUAL
Error report:
SQL Error: ORA-01428: argument '1' is out of range
01428. 00000 - "argument '%s' is out of range"
*Cause:
*Action:
W funkcji LOG() muszą być określone dwa argumenty
SELECT log(10) FROM DUAL
Error at Command Line:1 Column:7
Error report:
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 - "invalid number of arguments"
*Cause:
*Action:
Przykład 1:
SELECT log(10,1) "logarytm dziesietny z 1" FROM DUAL;
logarytm dziesietny z 1
-----------------------
0
1 rows selected
Przykład 2:
SELECT log(10,10) "logarytm dziesietny z 10" FROM DUAL;
logarytm dziesietny z 10
------------------------
1
1 rows selected
lub LOG(wartosc1, wartosc2)
Funkcja zwraca wartosc logarytmu przy podstawie z wartosc1 z liczby wartosc2.
UWAGA!!!
"wartosc1" musi być liczbą większą od 1.
"wartosc2" musi być liczbą dodatnią.
w przeciwnym wypadku zostanie zwrócony błąd:
SELECT log(1,8) FROM DUAL
Error report:
SQL Error: ORA-01428: argument '1' is out of range
01428. 00000 - "argument '%s' is out of range"
*Cause:
*Action:
W funkcji LOG() muszą być określone dwa argumenty
SELECT log(10) FROM DUAL
Error at Command Line:1 Column:7
Error report:
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 - "invalid number of arguments"
*Cause:
*Action:
Przykład 1:
SELECT log(10,1) "logarytm dziesietny z 1" FROM DUAL;
logarytm dziesietny z 1
-----------------------
0
1 rows selected
Przykład 2:
SELECT log(10,10) "logarytm dziesietny z 10" FROM DUAL;
logarytm dziesietny z 10
------------------------
1
1 rows selected
ORACLE - LN()
LN()
LN(wartosc)
Funkcja zwraca logarytm naturalny z liczby "wartosc".
UWAGA!!!
Jeżeli liczba "wartosc" jest mniejsza lub równa 0 zwrócony zostanie bład.
SELECT LN(0) "logarytm naturalny" FROM DUAL
Error report:
SQL Error: ORA-01428: argument '0' is out of range
01428. 00000 - "argument '%s' is out of range"
*Cause:
*Action:
Przykład 1:
EXP(1) zwraca wartość liczby e.
SELECT LN(EXP(1)) "logarytm naturalny z liczby e" FROM DUAL;
logarytm naturalny z liczby e
-----------------------------
1
1 rows selected
LN(wartosc)
Funkcja zwraca logarytm naturalny z liczby "wartosc".
UWAGA!!!
Jeżeli liczba "wartosc" jest mniejsza lub równa 0 zwrócony zostanie bład.
SELECT LN(0) "logarytm naturalny" FROM DUAL
Error report:
SQL Error: ORA-01428: argument '0' is out of range
01428. 00000 - "argument '%s' is out of range"
*Cause:
*Action:
Przykład 1:
EXP(1) zwraca wartość liczby e.
SELECT LN(EXP(1)) "logarytm naturalny z liczby e" FROM DUAL;
logarytm naturalny z liczby e
-----------------------------
1
1 rows selected
ORACLE - FLOOR()
FLOOR()
FLOOR(wartosc)
Funkcja zwraca liczbę całkowitą nie większą niż "wartosc". (podłoga liczby)
Przykład 1:
SELECT FLOOR(5.31) "podloga liczby" FROM DUAL;
podloga liczby
----------------------
5
1 rows selected
Przykład 2:
SELECT FLOOR(8.31) "podloga liczby" FROM DUAL;
podloga liczby
----------------------
8
1 rows selected
FLOOR(wartosc)
Funkcja zwraca liczbę całkowitą nie większą niż "wartosc". (podłoga liczby)
Przykład 1:
SELECT FLOOR(5.31) "podloga liczby" FROM DUAL;
podloga liczby
----------------------
5
1 rows selected
Przykład 2:
SELECT FLOOR(8.31) "podloga liczby" FROM DUAL;
podloga liczby
----------------------
8
1 rows selected
ORACLE - EXP()
EXP()
EXP(wartosc)
Funkcja zwraca wartość liczby e podniesionej do potęgi "wartosc".
EXP(1) = e^1
EXP(0) = e^0
Przykład 1:
SELECT EXP(1) "liczba e" FROM DUAL;
liczba e
----------------------
2,71828182845904523536028747135266249776
1 rows selected
EXP(wartosc)
Funkcja zwraca wartość liczby e podniesionej do potęgi "wartosc".
EXP(1) = e^1
EXP(0) = e^0
Przykład 1:
SELECT EXP(1) "liczba e" FROM DUAL;
liczba e
----------------------
2,71828182845904523536028747135266249776
1 rows selected
ORACLE - COSH()
COSH()
COSH(wartosc)
Zwraca cosinus hiperboliczny dla wartości "wartosc".
Przykład 1:
SELECT COSH(0) "cosinus hiperboliczny" FROM DUAL;
cosinus hiperboliczny
----------------------
1
1 rows selected
COSH(wartosc)
Zwraca cosinus hiperboliczny dla wartości "wartosc".
Przykład 1:
SELECT COSH(0) "cosinus hiperboliczny" FROM DUAL;
cosinus hiperboliczny
----------------------
1
1 rows selected
czwartek, 2 lutego 2012
ORACLE - COS()
COS()
COS(wartosc)
Funkcja zwraca cosinus dla podanej wartosci.
Przykład 1:
SELECT COS(1) "cosinus" FROM DUAL;
cosinus
----------------------
0,5403023058681397174009366074429766037354
1 rows selected
COS(wartosc)
Funkcja zwraca cosinus dla podanej wartosci.
Przykład 1:
SELECT COS(1) "cosinus" FROM DUAL;
cosinus
----------------------
0,5403023058681397174009366074429766037354
1 rows selected
ORACLE - CEIL()
CEIL(wartosc)
Zwraca najmniejszą liczbę całkowitą nie mniejszą niż "wartosc".
Przykład 1:
SELECT CEIL(1.5) "Sufit" FROM DUAL;
Sufit
----------------------
2
1 rows selected
Przykład 2:
SELECT CEIL(-1.5) "Sufit" FROM DUAL;
Sufit
----------------------
-1
1 rows selected
Zwraca najmniejszą liczbę całkowitą nie mniejszą niż "wartosc".
Przykład 1:
SELECT CEIL(1.5) "Sufit" FROM DUAL;
Sufit
----------------------
2
1 rows selected
Przykład 2:
SELECT CEIL(-1.5) "Sufit" FROM DUAL;
Sufit
----------------------
-1
1 rows selected
ORACLE - BITAND()
BITAND()
BITAND(wartosc1, wartosc2)
Zwraca liczbę całkowitą po operacji koniunkcji liczb "wartosc1" oraz "wartosc2" (w reprezentacji binarnej).
Działanie funkcji BITAND najlepiej zobrazuje poniższy przykład.
BITAND(7,5)
Liczba 7 w systemie dwójkowym wynosi 111
Liczba 5 w systemie dwójkowym wynosi 101
Stosując AND na bitach 111 i 101 otrzymujemy 101, dlaczego ?
111
101
patrząc od prawej 1 i 1 (ostatnia kolumna) - daje nam 1.
następna kolumna - 1 i 0 - wynik 0.
kolumna pierwsza - 1 i 1 - wynik 1.
Liczba 101 w reprezentacji dwójkowej wynosi 5.
SELECT BITAND(7,5) FROM DUAL;
BITAND(7,5)
----------------------
5
1 rows selected
UWAGA!!!
Wartości w funkcji BITAND() mają bardzo duży zakres.
Możemy używać wartości z zakresu (-2)^(n-1) do 2^(n-1) dla n=128.
BITAND(wartosc1, wartosc2)
Zwraca liczbę całkowitą po operacji koniunkcji liczb "wartosc1" oraz "wartosc2" (w reprezentacji binarnej).
Działanie funkcji BITAND najlepiej zobrazuje poniższy przykład.
BITAND(7,5)
Liczba 7 w systemie dwójkowym wynosi 111
Liczba 5 w systemie dwójkowym wynosi 101
Stosując AND na bitach 111 i 101 otrzymujemy 101, dlaczego ?
111
101
patrząc od prawej 1 i 1 (ostatnia kolumna) - daje nam 1.
następna kolumna - 1 i 0 - wynik 0.
kolumna pierwsza - 1 i 1 - wynik 1.
Liczba 101 w reprezentacji dwójkowej wynosi 5.
SELECT BITAND(7,5) FROM DUAL;
BITAND(7,5)
----------------------
5
1 rows selected
UWAGA!!!
Wartości w funkcji BITAND() mają bardzo duży zakres.
Możemy używać wartości z zakresu (-2)^(n-1) do 2^(n-1) dla n=128.
ORACLE - ATAN2()
ATAN2()
ATAN2(wartosc1, wartosc2)
Funkcja zwraca arcus tangens dla podanych wartosci.
ATAN2(wartosc1, wartosc2) jest równoznaczne z ATAN(wartosc1/wartosc2).
Przykład 1:
SELECT ATAN2(1.5,1.5) "ATAN2" FROM DUAL;
ATAN2
----------------------
0,7853981633974483096156608458198757210546
1 rows selected
Przykład 2:
SELECT ATAN(1.5/1.5) "ATAN" FROM DUAL;
ATAN
----------------------
0,7853981633974483096156608458198757210546
1 rows selected
ATAN2(wartosc1, wartosc2)
Funkcja zwraca arcus tangens dla podanych wartosci.
ATAN2(wartosc1, wartosc2) jest równoznaczne z ATAN(wartosc1/wartosc2).
Przykład 1:
SELECT ATAN2(1.5,1.5) "ATAN2" FROM DUAL;
ATAN2
----------------------
0,7853981633974483096156608458198757210546
1 rows selected
Przykład 2:
SELECT ATAN(1.5/1.5) "ATAN" FROM DUAL;
ATAN
----------------------
0,7853981633974483096156608458198757210546
1 rows selected
ORACLE - ATAN()
ATAN()
ATAN(wartosc)
Funkcja zwraca arcus tangens dla podanej wartosci. Zwróciona wartość jest z zakresu od -PI/2 do PI/2 wyrażone w radianach.
Przykład 1:
SELECT ATAN(1) "Arcuc tangens" FROM DUAL;
Arcuc tangens
----------------------
0,7853981633974483096156608458198757210546
1 rows selected
Przykład 2:
SELECT ATAN(-2) "Arcus tangens" FROM DUAL;
Arcus tangens
----------------------
-1,10714871779409050301706546017853704007
1 rows selected
ATAN(wartosc)
Funkcja zwraca arcus tangens dla podanej wartosci. Zwróciona wartość jest z zakresu od -PI/2 do PI/2 wyrażone w radianach.
Przykład 1:
SELECT ATAN(1) "Arcuc tangens" FROM DUAL;
Arcuc tangens
----------------------
0,7853981633974483096156608458198757210546
1 rows selected
Przykład 2:
SELECT ATAN(-2) "Arcus tangens" FROM DUAL;
Arcus tangens
----------------------
-1,10714871779409050301706546017853704007
1 rows selected
ORACLE - ASIN()
ASIN()
ASIN(wartosc)
Funkcja zwraca arcus sinus dla podanej wartosci. Zwróciona wartość jest z zakresu od -PI/2 do PI/2 wyrażone w radianach.
UWAGA!!!
"wartosc" musi byc z zakresu <-1, 1>. W przeciwnym razie zostanie zwrócony błąd:
SQL Error: ORA-01428: argument 'XXX' is out of range
01428. 00000 - "argument '%s' is out of range"
Przykład 1:
SELECT ASIN(0.5) "Arcus sinus" FROM DUAL;
Arcus sinus
----------------------
0,52359877559829887307710723054658381405
1 rows selected
Przykład 2:
SELECT ASIN(1.01) "Arcus sinus" FROM DUAL;
SELECT ASIN(1.01) "Arcus sinus" FROM DUAL
Error report:
SQL Error: ORA-01428: argument '1.01' is out of range
01428. 00000 - "argument '%s' is out of range"
*Cause:
*Action:
ASIN(wartosc)
Funkcja zwraca arcus sinus dla podanej wartosci. Zwróciona wartość jest z zakresu od -PI/2 do PI/2 wyrażone w radianach.
UWAGA!!!
"wartosc" musi byc z zakresu <-1, 1>. W przeciwnym razie zostanie zwrócony błąd:
SQL Error: ORA-01428: argument 'XXX' is out of range
01428. 00000 - "argument '%s' is out of range"
Przykład 1:
SELECT ASIN(0.5) "Arcus sinus" FROM DUAL;
Arcus sinus
----------------------
0,52359877559829887307710723054658381405
1 rows selected
Przykład 2:
SELECT ASIN(1.01) "Arcus sinus" FROM DUAL;
SELECT ASIN(1.01) "Arcus sinus" FROM DUAL
Error report:
SQL Error: ORA-01428: argument '1.01' is out of range
01428. 00000 - "argument '%s' is out of range"
*Cause:
*Action:
ORACLE - ACOS()
ACOS()
ACOS(wartosc)
Funkcja zwraca arcus cosinus dla podanej wartosci. Zwróciona wartość jest z zakresu od 0 do PI wyrażona w radianach.
UWAGA!!!
"wartosc" musi byc z zakresu <-1, 1>. W przeciwnym razie zostanie zwrócony błąd:
SQL Error: ORA-01428: argument 'XXX' is out of range
01428. 00000 - "argument '%s' is out of range"
Przykład 1:
SELECT ACOS(0.5) "Arcuc cosinus" FROM DUAL;
Arcuc cosinus
----------------------
1,04719755119659774615421446109316762805
1 rows selected
Przykład 2:
SELECT ACOS(1.01) "Arcuc cosinus" FROM DUAL;
SELECT ACOS(1.01) "Arcuc cosinus" FROM DUAL
Error report:
SQL Error: ORA-01428: argument '1.01' is out of range
01428. 00000 - "argument '%s' is out of range"
*Cause:
*Action:
ACOS(wartosc)
Funkcja zwraca arcus cosinus dla podanej wartosci. Zwróciona wartość jest z zakresu od 0 do PI wyrażona w radianach.
UWAGA!!!
"wartosc" musi byc z zakresu <-1, 1>. W przeciwnym razie zostanie zwrócony błąd:
SQL Error: ORA-01428: argument 'XXX' is out of range
01428. 00000 - "argument '%s' is out of range"
Przykład 1:
SELECT ACOS(0.5) "Arcuc cosinus" FROM DUAL;
Arcuc cosinus
----------------------
1,04719755119659774615421446109316762805
1 rows selected
Przykład 2:
SELECT ACOS(1.01) "Arcuc cosinus" FROM DUAL;
SELECT ACOS(1.01) "Arcuc cosinus" FROM DUAL
Error report:
SQL Error: ORA-01428: argument '1.01' is out of range
01428. 00000 - "argument '%s' is out of range"
*Cause:
*Action:
ORACLE - ABS()
ABS()
ABS(wartosc)
Funkcja zwraca wartość bezwzględną "wartosc".
Przykład 1:
SELECT ABS(15) "Wartosc bezwzgledna" FROM DUAL;
Wartosc bezwzgledna
----------------------
15
1 rows selected
Przykład 2:
SELECT ABS(-15) "Wartosc bezwzgledna" FROM DUAL;
Wartosc bezwzgledna
----------------------
15
1 rows selected
ABS(wartosc)
Funkcja zwraca wartość bezwzględną "wartosc".
Przykład 1:
SELECT ABS(15) "Wartosc bezwzgledna" FROM DUAL;
Wartosc bezwzgledna
----------------------
15
1 rows selected
Przykład 2:
SELECT ABS(-15) "Wartosc bezwzgledna" FROM DUAL;
Wartosc bezwzgledna
----------------------
15
1 rows selected
Subskrybuj:
Posty (Atom)