Funkcja INITCAP. SQL> select initcap(dname), initcap(loc) from dept; Funkcja SUBSTR

Podobne dokumenty
PL/SQL. Funkcje wbudowane

Bazy danych. Plan wykáadu. Diagramy ER. Podstawy modeli relacyjnych. Wykáad 3: Relacyjny model danych. SQL - zmienne podstawienia, funkcje

Funkcje. Rozdział 3a Funkcje wierszowe. Funkcje znakowe (1) Funkcje wierszowe

Język SQL. Rozdział 3. Funkcje wierszowe

Funkcje. Rozdział 3. Funkcje. Funkcje znakowe (1) Funkcje wierszowe

Język SQL. Rozdział 3. Zaawansowana selekcja danych

Bazy danych. Plan wykładu. Dekompozycja relacji. Anomalie. Wykład 5: Projektowanie relacyjnych schematów baz danych. SQL - funkcje grupujce

PL/SQL. Część 1 Oracle SQL. Piotr Medoń

osiągnął długość podaną jako drugi parametr. Jeśli wynik jest dłuższy niż zadeklarowana długość, zostaje ucięty z prawej strony.

Bazy danych. Plan wykáadu. Zale*noci funkcyjne. Wykáad 4: Relacyjny model danych - zale*noci funkcyjne. A B

Zadania SELECT do schematu EDS (EMP, DEPT, SALGRADE)

Oracle PL/SQL. Paweł Rajba.

Zagadnienia podstawowe

Materiały szkoleniowe. Podstawy języka SQL

Szkolenie Oracle SQL podstawy. Terminy lutego 2010 First Minute! 1100zł!

Bazy danych. Plan wykładu. Definicja zalenoci funkcyjnych. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne.

TECHNOLOGIE BAZ DANYCH

Wykład 8 Implementacja języka SQL w systemach baz danych Oracle specyficzne konstrukcje i funkcje Oracle SQL, funkcje numeryczne, znakowe, daty i

Ściągawka z funkcji i właściwości systemowych VBA. Opis działania i parametrów. Nazwa funkcji. Składnia zwracanej wartości

Laboratorium Baz Danych. Zapytania SQL (część 3)

Technologie baz danych

Standard SQL/XML. Wprowadzenie do XQuery

Administracja i programowanie pod Microsoft SQL Server 2000

a) Polecenie: Wyświetl wszystkie rekordy z tabeli Pracownicy (wszystkie atrybuty)

BAZY DANYCH JĘZYK ZAPYTAŃ BAZ DANYCH SQL. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Spis treści. 1 Kraj/region i język Ustawienia regionalne Liczby Waluta Czas i data Inne...

Funkcje analityczne SQL CUBE (1)

Zbiór pytań nr 2. 1 Tabela DEPARTMENTS ma następującą strukturę:

Wybór EUROPEAN będzie rozpoznawał dzień przed miesiącem, natomiast US miesiąc przed dniem.

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Bazy danych 7/15. Andrzej Łachwa, UJ,

Hurtownie danych - przegląd technologii

Bazy danych SQL Server 2005

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Autor: dr inż. Katarzyna Rudnik

OBLICZENIA NA DANYCH

ARKUSZ KALKULACYJNY komórka

Materiały szkoleniowe. Podstawy jzyka SQL. Prowadzcy Anna Pijanowska - Kunierz Paweł ołnierczyk

Wybór wszystkich danych: SELECT * FROM employee Wybór określonych kolumn lub wyrażeń: SELECT first_name, last_name, salary FROM employee

Laboratorium Bazy danych SQL 2

Przydatne sztuczki - sql. Na przykładzie postgres a.

XQuery. sobota, 17 grudnia 11

1. Wprowadzanie danych z klawiatury funkcja scanf

2. Język SQL SQL jest językiem deklaratywnym (Charakterystyczną cechą języków

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Autor: Joanna Karwowska

Język SQL. Rozdział 2. Proste zapytania

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

Technologie baz danych

DZIAŁANIA NA UŁAMKACH DZIESIĘTNYCH.

Autor: Joanna Karwowska

Bazy danych. Andrzej Łachwa, UJ, /14

Bazy danych 2. Anna Fiedorowicz Wydział Matematyki, Informatyki i Ekonometrii

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

SQL, LIKE, IN, CASE, EXISTS. Marcin Orchel

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

Systemy zapisu liczb.

Metoda znak-moduł (ZM)

Wprowadzenie do baz danych

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Systemy GIS Tworzenie zapytań w bazach danych

Bazy danych w aplikacjach internetowych

Lista zadań nr 1. Bazy danych laboratorium. dr inż. Grzegorz Bazydło, dr inż. Jacek Tkacz

Ćwiczenie 2 funkcje wierszowe

Cw.12 JAVAScript w dokumentach HTML

LABORATORIUM 1

Lista zadań nr Wyświetlić imię i nazwisko dla każdego pracownika z departamentu DEP T NO o numerze 000.

Przegląd podstawowych funkcji Excel.

SQL i PL/SQL podstawy

Podstawowe zapytania SELECT (na jednej tabeli)

Laboratorium nr 7. Temat: Podstawy języka zapytań SQL (część 1) 1. Wprowadzenie do laboratorium

Oracle 12c: Nowości w SQL i PL/SQL

Zbiór pytań nr 5. 2 Które stwierdzenie opisuje najlepiej zbiór uprawnień dostępny po wykonaniu

Bazy danych 6. SQL funkcje daty i czasu, zmienne tymczasowe, aliasy

Bloki anonimowe w PL/SQL

Zarzadzanie transakcjami. Transakcje

Ćwiczenie zapytań języka bazy danych PostgreSQL

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Wykład 5. SQL praca z tabelami 2

- język zapytań służący do zapisywania wyrażeń relacji, modyfikacji relacji, tworzenia relacji

sqlplus [ użytkownik [ / hasło ] ]

n, m : int; S, a, b : double. Gdy wartości sumy składowej nie można obliczyć, to przyjąć Sij = 1.03 Dla obliczenia Sij zdefiniować funkcję.

Funkcje wbudowane PHP

JAVAScript w dokumentach HTML (1)

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Obliczenia inżynierskie arkusz kalkulacyjny. Technologie informacyjne

Klasy: String, Random, Math. Korzystanie z dokumentacji.

W zapisie pewnej liczby w systemie rzymskim dwa znaki zastąpiono. D CC LVI Uzasadnij, że liczba ta jest mniejsza od 850.

Widok Connections po utworzeniu połączenia. Obszar roboczy

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

E.14 Bazy Danych cz. 12 SQL Wybrane funkcje serwera MySQL

SYSTEMY LICZBOWE 275,538 =

Wydział Elektrotechniki, Informatyki i Telekomunikacji

niż zadeklarowana długość, zostaje ucięty z prawej strony. osiągnął długość podaną jako drugi parametr. Jeśli wynik jest dłuższy

Ref. 7 - Język SQL - polecenia DDL i DML

Język SQL. Rozdział 9. Język definiowania danych DDL, cześć 1. Tworzenie relacji, typy danych, wartości domyślne atrybutów, słownik bazy danych.

SQL - Structured Query Language. strukturalny język zapytań

Transkrypt:

Bazy danych SQL: funkcje dostępne w Oracle Funkcje działające na pojedynczych wartościach Działają na każdym wierszu wybranym przez zapytanie Zwracają jeden wynik dla każdego wiersza Są jedno- lub wieloargumentowe Można je zagnieżdżać Można ich używać wszędzie tam, gdzie stosuje się zmienne, kolumny, wyrażenia, w klauzulach SELECT, WHERE, ORDER BY Funkcje znakowe Funkcje liczbowe Funkcje działające na datach Funkcje konwersji Funkcje polimorficzne Funkcje znakowe Funkcja LOWER LOWER (wartość) - zmienia wielkie litery na odpowiadające im małe litery alfabetu. Inne znaki pozostawia bez zmian. SQL> select lower(dname) from dept; LOWER(DNAME) -------------- accounting research sales operations 2 3 Funkcja UPPER UPPER (wartość) - zmienia małę litery na odpowiadające im wielkie litery alfabetu. Inne znaki pozostawia bez zmian. SQL> select ename from emp where ename =upper('&ename'); Proszę podać wartość dla ename: smith stare 1: select ename from emp where ename =upper('&ename') nowe 1: select ename from emp where ename =upper('smith') ENAME ---------- SMITH Funkcja INITCAP INITCAP (wartość) - zamienia pierwszą literę każdego słowa na wielką, pozostałe litery na małe. Inne znaki pozostawia bez zmian. SQL> select initcap(dname), initcap(loc) from dept; INITCAP(DNAME) INITCAP(LOC) -------------- ------------- Accounting New York Research Dallas Sales Chicago Operations Boston Funkcja LPAD LPAD (wartość, n, [ ciąg ]) - uzupełnia kolumny lub literały z lewej strony do długości n za pomocą zadanego wyrażenia napisowego ciąg. Jeśli ostatni argument jest opuszczony, następuje uzupełnienie spacjami. SQL> select lpad(dname, 20,'*'), lpad(dname, 20), lpad(deptno, 20,'.') from dept; LPAD(DNAME,20,'*') LPAD(DNAME,20) LPAD(DEPTNO,20,'.') -------------------- -------------------- -------------------- **********ACCOUNTING ACCOUNTING...10 ************RESEARCH RESEARCH...20 ***************SALES SALES...30 **********OPERATIONS OPERATIONS...40 4 5 6 Funkcja RPAD RPAD (wartość, n, [ ciąg ]) - uzupełnia kolumny lub literały z prawej strony do długości n za pomocą zadanego wyrażenia napisowego ciąg. Jeśli ostatni argument jest opuszczony, następuje uzupełnienie spacjami. SQL> select rpad(dname, 20,'*'), rpad(dname, 20), rpad(deptno, 20,'.') from dept; RPAD(DNAME,20,'*') RPAD(DNAME,20) RPAD(DEPTNO,20,'.') -------------------- -------------------- -------------------- ACCOUNTING********** ACCOUNTING 10... RESEARCH************ RESEARCH 20... SALES*************** SALES 30... OPERATIONS********** OPERATIONS 40... Funkcja SUBSTR SUBSTR (wartość, m, [n]) - wybiara podciąg składający się z n znaków z kolumny, wyrażenia lub literału, począwszy od znaku o numerze m. Jeśli n nie jest podane, wynikiem jest podciąg od pozycji m do końca wartości, z której wycinamy. SQL> select substr('oracle',2,4), substr(dname, 2), substr(dname, 3, 5) from dept; SUBS SUBSTR(DNAME, SUBST ---- ------------- ----- RACL CCOUNTING COUNT RACL ESEARCH SEARC RACL ALES LES RACL PERATIONS ERATI Funkcja INSTR INSTR (wartość, ciag ) - wskazuje miejsce pierwszego wystąpienia wzorca ciąg ; INSTR (wartość, ciag,m,n) - wskazuje miejsce położenia n-tego wystąpienia wzorca ciąg, począwszy od pozycji m. SQL> select dname, instr(dname,'a'), instr(dname,'es'), instr(dname, 'C', 1,2) from dept; DNAME INSTR(DNAME,'A') INSTR(DNAME,'ES') INSTR(DNAME,'C',1,2) -------------- ---------------- ----------------- -------------------- ACCOUNTING 1 0 3 RESEARCH 5 2 0 SALES 2 4 0 OPERATIONS 5 0 0 7 8 9

Funkcje LTRIM i RTRIM LTRIM (wartość, znaki ); RTRIM(wartość, znaki ) - usuwa z lewej (RTRIM z prawej) strony wystąpienia dowolnych kombinacji znaków należących do argumentu znaki. Jeśli drugi argument nie jest podany, usuwa spacje. SQL> select dname, ltrim(dname, 'A'), ltrim(dname,'as'), ltrim(dname, 'ASOP') from dept; DNAME LTRIM(DNAME,'A LTRIM(DNAME,'A LTRIM(DNAME,'A -------------- -------------- -------------- -------------- ACCOUNTING CCOUNTING CCOUNTING CCOUNTING RESEARCH RESEARCH RESEARCH RESEARCH SALES SALES LES LES OPERATIONS OPERATIONS OPERATIONS ERATIONS SQL> select dname, rtrim(dname, 'G'), rtrim(dname,'ghs') from dept; DNAME RTRIM(DNAME,'G RTRIM(DNAME,'G -------------- -------------- -------------- ACCOUNTING ACCOUNTIN ACCOUNTIN RESEARCH RESEARCH RESEARC SALES SALES SALE Funkcja LENGTH LENGTH (wartość) - zwraca długość ciągu zawartego w argumencie SQL> select length('sql'), length(deptno), length(dname) from dept; LENGTH('SQL') LENGTH(DEPTNO) LENGTH(DNAME) ------------- -------------- ------------- 3 2 10 3 2 8 3 2 5 3 2 10 Funkcja TRANSLATE TRANSLATE (źródło, z, na) - w żródłowym ciągu znaków każde wystąpienie dowolnego znaku występujacego w ciągu z, zostanie zastąpione odpowiadającym (według pozycji) znakiem z ciągu na. Pozostałe znaki nie są zmieniane. Jeśli nie ma odpowiadajacego znaku (argument na jest krótszy niż argument z), wystąpienie znaku źródłowego zostanie usunięte. 10 11 12 Funkcja REPLACE REPLACE (źródło, wzorzec, ciąg_zastępujący) - w źródłowym ciągu wszystkie wystąpienia danego ciągu wzorzec zostają zastąpione przez ciąg_zastępujący. Jeśli argument ciąg_zastępujący nie jest podany, wszystkie wystąpienia ciąg zostaną usunięte. UWAGA: Funkcja REPLACE stanowi uzupełnienie funkcji TRANSLATE. TRANSLATE realizuje zamianę znaków typu jeden na jeden. REPLACE pozwala na zamianę, wzgędnie usuwanie całych ciągów znaków. Wzorzec i ciąg_zastepujący mogą być różnej długości. Funkcje liczbowe Funkcja ROUND ROUND (wartość, n) - zaokrągla wartości do -tego miejsca po przecinku. Jeśli n jest ujemne, zaokrąglenie natepuje do n-tego miejsca przed prezcinkiem. Jeśli n nie jest podane, zaokrągla się do jedności. SQL> SELECT ROUND(45.932,1), ROUND(45.932), ROUND(45.932,-1), ROUND(SAL/32,2) FROM EMP WHERE DEPTNO=10; ROUND(45.932,1) ROUND(45.932) ROUND(45.932,-1) ROUND(SAL/32,2) --------------- ------------- ---------------- --------------- 45,9 46 50 76,56 45,9 46 50 156,25 45,9 46 50 40,63 Funkcja TRUNC TRUNC (wartość, n) - obcina podaną wartość do n-tego miejsca po przecinku. Jeśli n jest ujemne, n cyfr przed przecinkiem zostaje zamienione na 0. Jeśli n nie jest podane, obcięcie następuje z dokładnością do jedności. SQL> SELECT TRUNC(45.932,1), TRUNC(45.932), TRUNC(45.932,-1), TRUNC(SAL/32,2) FROM EMP WHERE DEPTNO=10; TRUNC(45.932,1) TRUNC(45.932) TRUNC(45.932,-1) TRUNC(SAL/32,2) --------------- ------------- ---------------- --------------- 45,9 45 40 76,56 45,9 45 40 156,25 45,9 45 40 40,62 13 14 15 Funkcja CEIL CEIL (wartość) - wynikiem jest najmniejsza liczba całkowita większa lub równa podanej wartości. SQL> SELECT CEIL(SAL),CEIL(99.9), CEIL(101.76),CEIL(-11.1) FROM EMP WHERE SAL BETWEEN 3000 AND 5000; CEIL(SAL) CEIL(99.9) CEIL(101.76) CEIL(-11.1) ---------- ---------- ------------ ----------- 3000 100 102-11 5000 100 102-11 3000 100 102-11 Funkcja FLOOR FLOOR (wartość) - największa liczba całkowita mniejsza lub równa podanej wartości. SQL> SELECT FLOOR(SAL),FLOOR(99.9), FLOOR(101.76),FLOOR(-11.1) FROM EMP WHERE SAL BETWEEN 3000 AND 5000; FLOOR(SAL) FLOOR(99.9) FLOOR(101.76) FLOOR(-11.1) ---------- ----------- ------------- ------------ 3000 99 101-12 5000 99 101-12 3000 99 101-12 Funkcja POWER POWER(wartość, n) - podnosi podaną wartość do n-tej potęgi. SQL> SELECT SAL, POWER(SAL, 2), POWER(SAL,3),POWER(50,5) FROM EMP WHERE DEPTNO=10; SAL POWER(SAL,2) POWER(SAL,3) POWER(50,5) ---------- ------------ ------------ ----------- 2450 6002500 1,4706E+10 312500000 5000 25000000 1,2500E+11 312500000 1300 1690000 2197000000 312500000 16 17 18

Funkcja SQRT Funkcja SIGN Funkcja ABS SQRT(wartość) - pierwiastek kwadratowy z wartości kolumny lub zadanej wartości. SQL> SELECT SAL,SQRT(SAL), SQRT(40), SQRT(COMM) FROM EMP WHERE COMM>0; SAL SQRT(SAL) SQRT(40) SQRT(COMM) ---------- ---------- ---------- ---------- 1600 40 6,32455532 17,3205081 1250 35,3553391 6,32455532 22,3606798 1250 35,3553391 6,32455532 37,4165739 SIGN(wartość) - funkcja zwraca -1, jeśli argument jest ujemny, 0. jeśli jest zerem oraz +1 jeśli jest dodatni. SQL> SELECT SAL-COMM, SIGN(SAL-COMM), COMM-SAL, SIGN(COMM-SAL) FROM EMP WHERE DEPTNO=30; SAL-COMM SIGN(SAL-COMM) COMM-SAL SIGN(COMM-SAL) ---------- -------------- ---------- -------------- 1300 1-1300 -1 750 1-750 -1-150 -1 150 1 1500 1-1500 -1 ABS(wartość) zwraca wartość bezwzględną argumentu. SQL> SELECT SAL, COMM, COMM-SAL, ABS(COMM-SAL), ABS(-35) FROM EMP WHERE DEPTNO=30; SAL COMM COMM-SAL ABS(COMM-SAL) ABS(-35) ---------- ---------- ---------- ------------- ---------- 1600 300-1300 1300 35 1250 500-750 750 35 1250 1400 150 150 35 2850 35 1500 0-1500 1500 35 950 35 MOD(wartość1, wartość2) - reszta z dzielenia wartości1 przez wartość2. 19 20 21 Typ DATE Pseudokolumna SYSDATE Wyrażenia arytmetyczne dla dat Typ danych DATE W formacie DATE można wyróżnic: identyfikator stulecia, rok; miesiąc; dzień; godzinę; minutę; sekundę Daty mogą występować w przedziale od 1-ego stycznia 4712 p.n.e. do 31-ego grudnia 4712 n.e. SYSDATE - pseudokolumna zawierajaca datę systemową - bieżącą datę i godzinę. Można ją używać jak każdą inną kolumnę, np. można ją umiecić na liście klauzuli SELECT i wybrać z dowolnej tabeli. Można ją traktową jako 0 argumentową funkcję, która zwraca wynik typu DATE. SQL> SYSDATE SP2-0042: nieznane polecenie "SYSDATE" - reszta linii pomijana. SQL> SELECT SYSDATE FROM DUAL; SYSDATE -------- 05/10/21 Tabela DUAL - istnieje w każdej bazie ORACLE i jest dostępna do odczytu dla wszystkich użytkowników. Składa się z jednej kolumny i jednego wiersza. Jest użytecza wówczas, gdy chcemy wybrać jakąś pojedynczą wartość, która nie zależy od zawartości naszych tabel. data + liczba - dodanie do daty pewnej liczby dni - wynikiem jest data data-liczba - odjęcie od daty pewnej liczby dni - wynikiem jest data data-data - odjecie od daty innej daty, wynikiem jest liczba dni między nimi UWAGA: liczba może być ułamkiem, wówczas do daty dodana zostanie odpowiednia liczba godzin, minut, sekund. SQL> SELECT HIREDATE, HIREDATE+7, HIREDATE-7, SYSDATE-HIREDATE FROM EMP WHERE HIREDATE LIKE'%06%'; HIREDATE HIREDATE HIREDATE SYSDATE-HIREDATE ---------------- 81/06/09 81/06/16 81/06/02 8900,56752 22 23 24 Funkcja MONTHS_BETWEEN Funkcja ADD_MONTHS Funkcja NEXT_DAY MONTHS_BETWEEN (data1, data2) - zwraca odstęp pomiędzy wyspecyfikowanymi datami wyrażony w miesiącach. Wynik dodatni, jeśli data1 późniejsza od data2, lub ujemny w przeciwnym przypadku. ADD_MONTHS (data, n) - zwraca datę plus n miesięcy kalendarzowych, n- całkowite, ale może być ujemne. Jeśli otrzymamy błędną datę (np. 30 lutego) wynikiem będzie ostatnia sensowna data w otrzymanym miesiącu. NEXT_DAY(data1, dzień_tygodnia) - zwraca pierwsząpo wskkazanej datę, której dzień tygodnia jest taki jak wskazuje drugi argument. W argumencie podajemy numer lub nazwę dnia tygodnia. SQL> SELECT MONTHS_BETWEEN(SYSDATE, HIREDATE), MONTHS_BETWEEN('82/01/01','88/11/05') FROM EMP WHERE MONTHS_BETWEEN(SYSDATE, HIREDATE)>288; MONTHS_BETWEEN(SYSDATE,HIREDATE) MONTHS_BETWEEN('82/01/01','88/11/05') -------------------------------- ------------------------------------- 298,147399-82,129032 296,050625-82,129032 295,986109-82,129032 294,63127-82,129032 SQL> SELECT HIREDATE, ADD_MONTHS(HIREDATE, 3), ADD_MONTHS(HIREDATE,-3) FROM EMP WHERE DEPTNO=20; HIREDATE ADD_MONT ADD_MONT 80/12/17 81/03/17 80/09/17 81/04/02 81/07/02 81/01/02 87/04/19 87/07/19 87/01/19 87/05/23 87/08/23 87/02/23 81/12/03 82/03/03 81/09/03 SQL> SELECT HIREDATE, NEXT_DAY(HIREDATE, 'PIĄTEK'), NEXT_DAY(HIREDATE, 6) FROM EMP WHERE DEPTNO=20; HIREDATE NEXT_DAY NEXT_DAY 80/12/17 80/12/19 80/12/20 81/04/02 81/04/03 81/04/04 87/04/19 87/04/24 87/04/25 87/05/23 87/05/29 87/05/30 25 26 27

Funkcja LAST_DAY LAST_DAY(data1) - wynikiem jest data ostatniego dnia w miesiącu, do którego należy data1. SQL> SELECT SYSDATE, LAST_DAY(SYSDATE), HIREDATE, LAST_DAY(HIREDATE), LAST_DAY(TO_DATE('03/10/2005', 'DD/MM/YYYY')) FROM EMP WHERE DEPTNO=20; SYSDATE LAST_DAY HIREDATE LAST_DAY LAST_DAY -------- -------- 05/10/21 05/10/31 80/12/17 80/12/31 05/10/31 05/10/21 05/10/31 81/04/02 81/04/30 05/10/31 05/10/21 05/10/31 87/04/19 87/04/30 05/10/31 05/10/21 05/10/31 87/05/23 87/05/31 05/10/31 05/10/21 05/10/31 81/12/03 81/12/31 05/10/31 Funkcja ROUND ROUND(data1) - wynikiem jest data1 ze wskaxnikiem godzinowym ustalonym na północ, jeśli data1 wskazuje na godzinę przed południem, lub na północ dnia następnego, gdy data1 wskazuje na godzinę przed południem ROUND(data1, MONTH ) - wynikiem jest data pierwszego dnia miesiąca zawierającego data1, gdy jest ona z pierwszej połowy miesiąca, lub pierwszego dnia następnego miesiąca w przeciwnym przypadku. ROUND(data1, YEAR ) - zaokrąglenie do pierwszego dnia roku. SQL> SELECT SYSDATE, ROUND(SYSDATE,'MONTH'), ROUND(SYSDATE,'YEAR') FROM DUAL; SYSDATE ROUND(SY ROUND(SY 05/10/21 05/11/01 06/01/01 Funkcja TRUNC TRUNC(data1, dokładność) - wynikiem jest data pierwszego dnia miesiaca zawierajacego data1, jeśli dokładność jest MONTH lub pierwszego dnia roku, jeśli dokładność jest YEAR. Bez drugiego argumentu funkcja powoduje usunięcie składnika godzinowego z daty. 28 29 30 Funkcje konwersji TO_CHAR (liczba data[,format ]) - zamiana liczby lub daty na ciąg znaków zgodny z formatem opisanym w parametrze format TO_NUMBER (tekst) - zamiana ciągu znaków zawierających liczbę na daną typu NUMBER TO_DATE( tekst, format ) - zamiana ciągu znaków reprezentujących datę w formacie opisanym w parametrze format na daną typu DATE Funkcja TO_CHAR konwersja dat SQL> SELECT TO_CHAR(SYSDATE,'DAY,DD MONTH YYYY') FROM DUAL; TO_CHAR(SYSDATE,'DAY,DDMONTHYYYY -------------------------------- PIĄTEK,21 PAŹDZIERNIK 2005 SQL> SELECT TO_CHAR(SYSDATE,'HH:MI:SS') FROM DUAL; TO_CHAR( -------- 02:06:30 Przykłady formatów dat: YYYY, YYY, YY, Y - 4, 3, 2,lub ostatnia cyfra roku MM - miesiąc MONTH - nazwa miesiąca DDD, DD, D - dzień roku, miesiąca lub tygodnia DAY - nazwa dnia tygodnia HH - godzina MI - minuta; SS - sekunda Funkcja TO_CHAR konwersja liczb SQL> SELECT TO_CHAR(SAL, '$9,999') FROM EMP; TO_CHAR ------- $800 $1,600 $1,250 $2,975 Formaty dla liczb: Wzorzec Znaczenie Przykład 9 Pozycja cyfry liczba 99999 1234 dziewiątek określa szerokość wyświetlania) 0 Wyświetlani zer 099999 001234 wiodących $ Ruchomy znak dolara $99999 $1234. Pozycja kropki dziesiętnej 99999.99 1234.00 31 32 33 Funkcja TO_NUMBER i TO_DATE SQL> SELECT EMPNO, ENAME,JOB,SAL FROM EMP WHERE SAL>TO_NUMBER('1500'); EMPNO ENAME JOB SAL ---------- ---------- --------- ---------- 7499 ALLEN SALESMAN 1600 7566 JONES MANAGER 2975 7698 BLAKE MANAGER 2850 7782 CLARK MANAGER 2450 SQL> SELECT EMPNO, ENAME, HIREDATE FROM EMP WHERE HIREDATE=TO_DATE ('GRUDZIEÑ 17, 1980','MONTH DD,YYYY'); EMPNO ENAME HIREDATE ---------- ---------- -------- 7369 SMITH 80/12/17 Funkcje polimorficzne Funkcja DECODE Funkcje polimorficzne - funkcje, które nie są związane ze szczególnym typem danych, działają podobnie dla wielu różnych danych. DECODE - umożliwia warunkową realizację zapytań, gdyż działa na zasadzie typu case czy if-then-else z innych języków. DECODE(wyrażenie, wyr1, wynik1, [wyr2, wynik2,...] wynik domyślny) Uwagi: wyrażenie może być dowolnego typu wartość wyr muszą być takiego samego typu jak wyrażenie Funkcja DECODE SQL>SELECT ENAME, JOB, DECODE(JOB, 'CLERK', 'PRACOWNIK', 'MANAGER', 'SZEF', ' ') TŁUMACZENIE FROM EMP; ENAME JOB TŁUMACZEN ---------- --------- --------- SMITH CLERK PRACOWNIK ALLEN SALESMAN WARD SALESMAN JONES MANAGER SZEF 34 35 36

Funkcja DECODE SQL> SELECT GRADE, DECODE(GRADE, 1, '15%', 2, '10%', 3, '8%', '5%') BONUS FROM SALGRADE; GRADE BON ---------- --- 1 15% 2 10% 3 8% 4 5% 5 5% Inne funkcje NVL (wyrażenie1, wyrażenie2) - zmienia wartość NULL w pierwszym argumencie na wartość2 GREATEST (wartość1, wartość2,...) - zwraca największą wartość z listy LEAST(wartość1, wartość2,...) - zwraca najmniejszą wartość sposród podanych argumentów 37 38